Christiano Braga
Associate Professor (Professor Adjunto) Instituto de Computação Universidade Federal Fluminense Rua Passo da Pátria 156, BL E, 3o. andar, sala 305 São Domingos, 24210-240, Niterói, Brazil Ph.#: +55(21)2629-5652 Events Projects Publications λSE - Language-oriented software engineering research group MMT - Maude MSOS tool SBLP 2011 - 15th Brazilian Symposium on Programming Languages
|
Projects
Engenharia de software orientada a linguagens (ESL) objetiva dar suporte ao desenvolvimento de software orientado a domínios utilizando linguagens padronizadas. No desenvolvimento orientado a domínios estes são definidos por linguagens. O processo de desenvolvimento se caracteriza então pela composição de transformações que, em última análise, refinam descrições em linguagens de domínio, num alto-nível de abstração, a código executável. No contexto de engenharia de software orientada a objetos, quando utilizamos padrões do Object Management Group (OMG), dentro do processo de desenvolvimento descrito no parágrafo anterior, obtêm-se a chamada Model-driven Architecture (MDA). A inicitaiva MDA propõe o uso de metamodelos, descritos na Unified Modeling Language (UML), para definir linguagens de domínio e transformações utilizando a linguagem Query View Transformation (QVT). Tanto UML e QVT são padrões da OMG. Transformações podem ser utilizadas para refinar descrições utilizando linguagens de domínio de alto-nível de abstração. Mais ainda, quando linguagens que possuem uma semântica precisa são utilizadas, podemos também: (i) raciocinar sobre estas descrições e (ii) especificar transformações, garantindo que suas implementações estejam em conformidade com as especificações dadas. Isto pode ser feito tanto dentro do contexto de MDA, utilizando a Object Constraint Language (OCL), quanto em outras abordagens que utilizam outras linguagens de especificação, transformação e validação. O grande trunfo de MDA é a padronização: com ela ferramentas podem interoperar. No entanto, os padrões associados a MDA pecam pela falta ou fraco suporte no que tange a análise e transformação. Este projeto têm como objeto final criar suporte ferramental a ESL. Isto significa produzir ferramentas que permitam, principalmente no contexto de MDA: (i) auxiliar no processo de análise de descrições específicas de domínio e (ii) auxiliar na definição de transformações entre domínios construídas rigorosamente. Referência: Christiano Braga, From Access Control Policies to an Aspect-Based Infrastructure: A Metamodel-Based Approach, Proceedings of Non-Functional System Properties in Domain Specific Modeling (NFPinDSML'09), MODELS Workshops 08, Michael Chaudron (Ed.), Lecture Notes in Computer Science, vol. 5421, pp. 243-256, Springer, 2008. (DOI)
In the constructive approach to programming language semantics, or Constructive Semantics for short, a library of basic abstract syntax (BAS) for language constructs commonly found in programming languages is proposed, such as a conditional, a loop or a function application. The semantics of a programming language may be expressed simply by relating its syntax with BAS constructs. The semantics of BAS constructs may be expressed in different semantic frameworks as long as there is support for modular specifications. Modular Structural Operational Semantics (MSOS) is one such framework. Action Semantics is another possibility. This project aims at developing a Constructive Semantics for aspect-oriented programming (AOP). AOP is a fairly recent programming discipline (around eleven years old). However, it gained worldwide acceptance due to its powerful programming model which essentially exposes metalevel facilities at the object level. The AOP approach, which was born at the Palo Alto Research Center (PARC), builds on Gregor Kiczales' experience on metaobject protocols. Kiczales' AspectJ, an AOP extension to Java, is the de facto standard language for AOP. Today, AspectJ is an Eclipse project. Reference: Christiano Braga, A Constructive Semantics for Basic Aspect Constructs. In: Symposium in honor of Prof. Peter Mosses, 2009, Udine. Semantics and Algebraic Specification Essays Dedicated to Peter D. Mosses on the Occasion of His 60th Birthday, 2009. v. 5700. (DOI)
Modular structural operational semantics (MSOS) is a new framework that allows structural operational semantics (SOS) specifications to be made modular in the sense of not imposing the redefinition of transition rules, which is the case in SOS specifications, when an extension is made. Maude MSOS tool (MMT) is an executable environment for MSOS implemented in Full Maude as a realization of a semantics-preserving mapping between MSOS and rewriting logic (RWL). The modular SOS definition formalism (MSDF) is the specification language supported by MMT. MSDF syntax is quite close to MSOS mathematical notation and user-friendly by allowing several syntactic components to be left implicit. MMT joins the support for modularity with a user-friendly syntax together with the efficient execution and analysis of the Maude engine. We have used MMT in several different examples from programming languages semantics and concurrent systems. This research focuses on the development of MMT and its application to these two classes of specifications. References:
|