We report our experience in using two different languages to build the same software project. Specifically, we have converted an entire undergraduate compiler course from using AspectJ, an aspect-oriented language, to using OCaml, a functional language. The course has evolved over a period of eight years with, on average, 60 students completing it every year. In this article, we analyze our usage of the two programming languages and we compare and contrast the two software projects on a number of parameters, including how they enable students to write and test individual compiler phases in a modular way.
Many authors have encouraged the use of modular programming techniques in software development. In f...
Many authors have encouraged the use of modular programming techniques in software development. In f...
Compiler writing techniques have undergone a number of major revisions over the past forty years. T...
We report our experience in using two different languages to build the same software project. Specif...
Compilers are among the most widely-studied pieces of software; and, modularizing these valuable art...
In current aspect-oriented languages, separate compilation and modular reasoning are not possible. T...
Providing proper modularity is one of the major challenges in software development. In the context o...
In our previous work, we presented an aspect-oriented intermediate language, named Nu, to preserve d...
Compilers are traditionally factorised into a number of separate phases, such as parsing, type check...
The introduction of new features to a programming language often requires that its compiler goes to ...
The most successful model of aspect-oriented modularity to date is that embodied in the AspectJ lang...
Various languages and tools supporting advanced separation of concerns (such as aspect-oriented prog...
The ability to add new features to programming languages is essential for language design experiment...
The use of object-oriented techniques and concepts, like encapsulation and inheritance, greatly imp...
This work describes a language design experiment in the context of aspect-oriented programming. The ...
Many authors have encouraged the use of modular programming techniques in software development. In f...
Many authors have encouraged the use of modular programming techniques in software development. In f...
Compiler writing techniques have undergone a number of major revisions over the past forty years. T...
We report our experience in using two different languages to build the same software project. Specif...
Compilers are among the most widely-studied pieces of software; and, modularizing these valuable art...
In current aspect-oriented languages, separate compilation and modular reasoning are not possible. T...
Providing proper modularity is one of the major challenges in software development. In the context o...
In our previous work, we presented an aspect-oriented intermediate language, named Nu, to preserve d...
Compilers are traditionally factorised into a number of separate phases, such as parsing, type check...
The introduction of new features to a programming language often requires that its compiler goes to ...
The most successful model of aspect-oriented modularity to date is that embodied in the AspectJ lang...
Various languages and tools supporting advanced separation of concerns (such as aspect-oriented prog...
The ability to add new features to programming languages is essential for language design experiment...
The use of object-oriented techniques and concepts, like encapsulation and inheritance, greatly imp...
This work describes a language design experiment in the context of aspect-oriented programming. The ...
Many authors have encouraged the use of modular programming techniques in software development. In f...
Many authors have encouraged the use of modular programming techniques in software development. In f...
Compiler writing techniques have undergone a number of major revisions over the past forty years. T...