DM565 - Formal Languages and Data Processing
Fall 2023
Kim Skak Larsen

Home Innovation

On SCIL, ARM architectures, and Python Versions. 4/10 2023
Let me start by saying that this comment is relevant for only a few of you. In the courses that are prerequisites for this course, you have learned X86 assembly, so that's what I use as the example target language in SCIL. Most of you have X86 on your laptops, but newer Macs have an ARM architecture. Some students then - quite reasonably - tried to run on IMADA's lab machines. Unfortunately, IT-service had not lived up to my expectations and they have old software running on them and they cannot be upgraded in the middle of the semester. Thus, the current SCIL release, which has been adapted to Python 3.10, does not run on the lab machines. However, the latest release I made of SCIL only upgrades from Python 3.8 to 3.10. Nothing fundamental has been changed - there are just a few places where one can now make code look a little nicer. So, if you would like to see actual X86 code running, you can download the previous SCIL release, and that will run on the lab machines. Finally, in case any students had problems, I made a simple interpreter for the tiny portion of X86 that I use. The interpreter is written in Python so if you use that you're platform independent. With regards to learning the curriculum of DM565, it makes no difference whether you use the interpreter or not - in this course, we're just interested in the compiler. To summarize the two main points: (1) If you want to run actual X86 assembly but have ARM architecture on your laptop, you can use the lab machines but you must use the second newest SCIL release. (2) If you're happy enough with just seeing the compiler working and assembly code being interpreted, you can use the interpreter option from the SCIL package.
Welcome to DM565! 1/9 2023
This course consists of a traditional course part and an innovation project. The first roughly 10 weeks are dedicated to the traditional course part. In this part, you will hear about regular expressions, finite automata, and grammars – and their application in data processing. This will include a journey from data formats, via simple data transformations using regular expressions and stream editor tools, before it culminates with the ultimate data transformation concepts in the form of compilers. This part is run by Kim Skak Larsen and evaluated via a written multiple choice test in January.

The innovation project part is run by Peter Bækgaard Von Lehnsburg and Rolf Fagerberg and it evolves around value creation using techniques from the course part. Some information meetings may be held before we have completed the traditional course part entirely, but the bulk of the work for the innovation project will take place during the last 5 weeks of the course, from about the middle of November. The innovation part is evaluated via a report and an oral presentation shortly before Xmas.

All information for the course will of course be available via Itslearning. However, all information can also be accessed via the professor's own home page – this does not require logging in and it doesn't time out.


   Data protection at SDUDatabeskyttelse på SDU