We start with a linguistic discussion of language, its properties, and the study of language in philosophy and linguistics. We then investigate natural languages, controlled languages, and artificial languages to emphasise the human ability to control and construct languages. At the end, we arrive at the notion of software languages as means to communicate software between people.]]>

We start with a linguistic discussion of language, its properties, and the study of language in philosophy and linguistics. We then investigate natural languages, controlled languages, and artificial languages to emphasise the human ability to control and construct languages. At the end, we arrive at the notion of software languages as means to communicate software between people.]]>

]]>

]]>

Presentation slides for lecture 5 of course IN4303 on Compiler Construction at TU Delft. ]]>

Presentation slides for lecture 5 of course IN4303 on Compiler Construction at TU Delft. ]]>

Presentation slides for lecture 13 of course IN4303 on Compiler Construction at TU Delft.]]>

Presentation slides for lecture 13 of course IN4303 on Compiler Construction at TU Delft.]]>

Presentation slides for lecture 10 of course IN4303 on Compiler Construction at TU Delft.]]>

Presentation slides for lecture 10 of course IN4303 on Compiler Construction at TU Delft.]]>

Presentation slides for lecture 11 of course IN4303 on Compiler Construction at TU Delft.]]>

Presentation slides for lecture 11 of course IN4303 on Compiler Construction at TU Delft.]]>

Presentation slides for lecture 12 of course IN4303 on Compiler Construction at TU Delft.]]>

Presentation slides for lecture 12 of course IN4303 on Compiler Construction at TU Delft.]]>

Presentation slides for lecture 9 of course IN4303 on Compiler Construction at TU Delft.]]>

Presentation slides for lecture 9 of course IN4303 on Compiler Construction at TU Delft.]]>

Presentation slides for lecture 8 of course IN4303 on Compiler Construction at TU Delft.]]>

Presentation slides for lecture 8 of course IN4303 on Compiler Construction at TU Delft.]]>

These are the slides from the presentation of our Onward! 2010 essay "Pure and Declarative Syntax Definition: Paradise Lost and Regained" at SPLASH. ]]>

These are the slides from the presentation of our Onward! 2010 essay "Pure and Declarative Syntax Definition: Paradise Lost and Regained" at SPLASH. ]]>

Presentation slides for lecture 2 of course IN4303 on Compiler Construction at TU Delft.]]>

Presentation slides for lecture 2 of course IN4303 on Compiler Construction at TU Delft.]]>

Presentation slides for lecture 7 of course IN4303 on Compiler Construction at TU Delft.]]>

Presentation slides for lecture 7 of course IN4303 on Compiler Construction at TU Delft.]]>

Presentation slides for lecture 5 of course IN4303 on Compiler Construction at TU Delft.]]>

Presentation slides for lecture 5 of course IN4303 on Compiler Construction at TU Delft.]]>

Presentation slides of lecture 7 of course IN4303 on Compiler Construction at TU Delft.]]>

Presentation slides of lecture 7 of course IN4303 on Compiler Construction at TU Delft.]]>

Introduction lecture of course IN4303 on Compiler Construction at TU Delft.]]>

Introduction lecture of course IN4303 on Compiler Construction at TU Delft.]]>

Presentation slides for lecture 6 of course IN4303 on Compiler Construction at TU Delft.]]>

Presentation slides for lecture 6 of course IN4303 on Compiler Construction at TU Delft.]]>

Presentation slides from lecture 3 of course IN4303 on Compiler Construction at TU Delft.]]>

Presentation slides from lecture 3 of course IN4303 on Compiler Construction at TU Delft.]]>

This lecture lays the theoretic foundations for declarative syntax formalisms and syntax-based language processors, which we will discuss later in the course. We introduce the notions of formal languages, formal grammars, and syntax trees, starting from Chomsky’s work on formal grammars as generative devices. We start with a formal model of languages and investigate formal grammars and their derivation relations as finite models of infinite productivity. We further discuss several classes of formal grammars and their corresponding classes of formal languages. In a second step, we introduce the word problem, analyse its decidability and complexity for different classes of formal languages, and discuss consequences of this analysis on language processing. We conclude the lecture with a discussion about parse tree construction, abstract syntax trees, and ambiguities.]]>

This lecture lays the theoretic foundations for declarative syntax formalisms and syntax-based language processors, which we will discuss later in the course. We introduce the notions of formal languages, formal grammars, and syntax trees, starting from Chomsky’s work on formal grammars as generative devices. We start with a formal model of languages and investigate formal grammars and their derivation relations as finite models of infinite productivity. We further discuss several classes of formal grammars and their corresponding classes of formal languages. In a second step, we introduce the word problem, analyse its decidability and complexity for different classes of formal languages, and discuss consequences of this analysis on language processing. We conclude the lecture with a discussion about parse tree construction, abstract syntax trees, and ambiguities.]]>

This introduction lecture sets the scene for the course. We introduce the notions of software languages and language software from a bigger, interdisciplinary picture. We start with a linguistic discussion of language, its properties, and the study of language in philosophy and linguistics. We then investigate natural languages, controlled languages, and artificial languages to emphasise the human ability to control and construct languages. At the end of the first part of the lecture, we arrive at the notion of software languages as means to communicate software between people. In the second part of the lecture, we extend the notion of software languages as means to realise processes on machines. We give an overview of language software, starting from interpreters and compilers. We then introduce various language processors as basic building blocks of compilers. We continue with a comparison of traditional compilers and modern compilers in IDEs. Finally, we introduce traditional compiler compilers and modern language workbenches as tools to construct compilers.]]>

This introduction lecture sets the scene for the course. We introduce the notions of software languages and language software from a bigger, interdisciplinary picture. We start with a linguistic discussion of language, its properties, and the study of language in philosophy and linguistics. We then investigate natural languages, controlled languages, and artificial languages to emphasise the human ability to control and construct languages. At the end of the first part of the lecture, we arrive at the notion of software languages as means to communicate software between people. In the second part of the lecture, we extend the notion of software languages as means to realise processes on machines. We give an overview of language software, starting from interpreters and compilers. We then introduce various language processors as basic building blocks of compilers. We continue with a comparison of traditional compilers and modern compilers in IDEs. Finally, we introduce traditional compiler compilers and modern language workbenches as tools to construct compilers.]]>

]]>

]]>

]]>

]]>