A declarative approach for software modeling

Mayer Goldberg, Guy Wiener

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

3 Scopus citations

Abstract

In this paper we describe a method for encoding software models as Prolog programs, and how to use these programs to support incremental development. Requirements, alternative designs, and implementation patterns are encoded as predicates in the program, and define a search routine, the solutions of which are possible implementations of the requirements. Under default operation, this routine validates that a given parsed code is compatible with one of these solutions. Additionally, the same search routine can be executed by special interpreters that provide traceability and code generation as well. Code generation may be complete or partial, allowing the user to combine hand-written and generated code. By customizing the interpreter, the user can generate an outline of the design or a tasks list, instead of code. We demonstrate these techniques using Java and SQL, but our approach is applicable to other programming languages and paradigms as well.

Original languageEnglish
Title of host publicationPractical Aspects of Declarative Languages - 14th International Symposium, PADL 2012, Proceedings
Pages18-32
Number of pages15
DOIs
StatePublished - 21 Feb 2012
Event14th International Symposium on Practical Aspects of Declarative Languages, PADL 2012 - Philadelphia, PA, United States
Duration: 23 Jan 201224 Jan 2012

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume7149 LNCS
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349

Conference

Conference14th International Symposium on Practical Aspects of Declarative Languages, PADL 2012
Country/TerritoryUnited States
CityPhiladelphia, PA
Period23/01/1224/01/12

Fingerprint

Dive into the research topics of 'A declarative approach for software modeling'. Together they form a unique fingerprint.

Cite this