Pablo Inostroza

Learn More
Selecting components for systems development is a hard task that depends chiefly on quality of component characterizations, yet existing Web-based catalogs do not offer rigorous component descriptions, fitness to purpose, or composition mechanisms. This paper introduces an approach to abstraction-based components characterization, allowing evaluation(More)
Deciding how to operationalize non-functional requirements (NFR) is a complex task, and several formalisms have been proposed to represent design decisions and their rationale. Unfortunately, these models can become complex (even unreadable) for designs with many alternatives and/or a well-documented rationale, which makes very hard to review and compare(More)
Modular interpreters have the potential to achieve component-based language development: instead of writing language interpreters from scratch, they can be assembled from reusable, semantic building blocks. Unfortunately, traditional language interpreters are hard to extend because different language constructs may require different interpreter signatures.(More)
Program transformations play an important role in domain-specific languages and model-driven development. Tracing the execution of such transformations has well-known benefits for debugging, visualization and error reporting. In this paper, we introduce string origins, a lightweight, generic and portable technique to establish a tracing relation between the(More)
Rascal is a meta-programming language for source code analysis and transformation [1, 2]. Concretely, it is targeted at analyzing and processing any kind of “source code in the broad sense”; this includes importing, analyzing, transforming, visualizing and generating, models, data files, program code, documentation, etc. Rascal is a functional programming(More)
Modular interpreters are a crucial first step towards component-based language development: instead of writing language interpreters from scratch, they can be assembled from reusable, semantic building blocks. Unfortunately, traditional language interpreters can be hard to extend because different language constructs may require different interpreter(More)
Many model-driven development (MDD) tools employ specialized frameworks and modeling languages, and assume that the semantics of models is provided by some form of code generation. As a result, programming against models is cumbersome and does not integrate well with ordinary programming languages and IDEs. In this paper we present MD4J, a modeling approach(More)
  • 1