To specify the syntax and semantics of Programming Languages (general purpose, GPL, or domain specific, DSL) using Attribute Grammars;
To analyze and discuss the Quality of Programming Languages and Grammars;
To generate (automatically) language processors (translators, compilers or interpreters) using Attribute Grammars or the Design-pattern Visitors;
To create complex data structures (hashing-tables, trees and graphs) as an intermediate representation to store the data extracted after the code analysis;
To create proper visual representations to help on the comprehension of program semantics;
To develop software as a program translation task;
To develop tools to help on program comprehension aiming at optimization tasks vulnerabilities detection.
Program
Attribute Grammars (AG) as a formalism to specify the syntax and semantics of Languages: concepts, formal definition and applications; approaches for attribute evaluation, concurrent and incremental evaluation; AGs as a support to the automatic generation of language Processors;
Language and Grammar Quality, problem characterization, metrics and interrelation;
Design-patterns approach to software development and the ‘Visitors’ pattern to specify and build Language Processors;
Static and Dynamic Code Analysis; application to program comprehension and security;
P.R. Henriques, “Atributos e Modularidade na Especificação de Linguagens Formais’’. PhD thesis, UM, 1992.
P. Deransart, M. Jourdan, and B. Lorho, “Attribute grammars: Main results, existing systems and bibliography’’. LNCS 341. Springer-Verlag, 1988.
A. van Deursen and P. Klint, “Little languages: Little maintenance?’’. Journal of Software Maintenance, 1998.
C.A.R. Hoare, “Hints on programming language design’’. Technical Report CS-TR-73-403, Stanford Univ, 1973.
D. Grune & K. van Reeuwijk & H.E. Bal & C.J.H. Jacobs & K. Langendoen, “Modern Compiler Design”, Springer, 2012; - K.D. Cooper & L. Torczon, “Engineering a Compiler”, Elsevier/Morgan-Kaufmann, 2011;
P. Santos & T. Langlois, “Compiladores - Da Teoria à Prática”, FCA, 2014.
J.E. Hopcroft, R. Motwani, and J. Ullman, “Introduction to Automata Theory, Languages, and Computation’’. Addison- Wesley, 2006.