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.

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.

Press + to interact
Target audience
Target audience

It is expected that target users have read the following prerequisite courses:

  1. Regular Expressions for Programmers

  2. Mastering Regular Expressions in Java

Organization of the course

This course is divided into 6 chapters, where each chapter contains some lessons and is organized as follows:

Press + to interact
Organization of the course
Organization of the course

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.

Press + to interact
Learning journey
Learning journey

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.