What to Expect
Gain an understanding of the intended audience for the course and how the course is organized to achieve the desired learning outcomes.
We'll cover the following...
Who should take this course?
This course is intended for developers with basic hands-on Java program experience. Basic knowledge of the command-line interface (CLI) is also required.
It is expected that target users have read the following prerequisite courses:
Organization of the course
This course is divided into 6 chapters, where each chapter contains some lessons and is organized as follows:
The table below describes the details of the chapters:
Chapter | Details |
1 | Introduces the concept of programming languages and their importance. Moreover, we discuss general-purpose programming languages (GPLs) and domain-specific programming languages (DSLs). Also, we compare GPLs and DSLs. Finally, we present the overall flow of the language implementation process. |
2 | Gives an idea of programming language syntax, semantics, and type system. |
3 | Presents a short overview of the sub-processes involved in the programming language implementation process. |
4 | We first discuss the ANTLR tool and design language grammar. Then, we implement a parser with the help of the ANTLR tool and integrate the parser into a Java program. We also discuss listeners and visitors, eventually building a simple language application. |
5 | We start with an overview of JastAdd, a meta-compilation system that supports reference attribute grammars (RAGs). It is designed to support the extensible development of compilers or tools like analyzers, translators, etc. Afterward, we practice it with some simple language grammar. |
6 | We begin with some available grammars, such as JavaScript, Python, C++, etc. We implement translators to translate from one programming language to another. Moreover, we encourage developers to design their language. Finally, with a Java project, we help developers design a new language. They can implement parsers, specify semantics with the ANTLR tool, and use JastAdd to implement a translator or compiler. |
Learning outcomes
By the end of this course, we’ll have sufficient knowledge to design and implement a domain-specific programming language.
Below are some of the key takeaways of this course:
Learn the importance of domain-specific languages, syntax, semantics, and type systems.
Learn the overall process of the programming language implementation.
The ability to implement a language with ANTLR v4.
The integration of JastAdd Java with ANTLR v4.
Designing and implementing a new domain-specific programming language with ANTLR and JastAdd Java.
Language translation or compilation tools development.