The synthesizer generator: a system for constructing language-based editors
The synthesizer generator: a system for constructing language-based editors
Program derivation by fixed point computation
Science of Computer Programming
Code generation using tree matching and dynamic programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
STATEMATE: A Working Environment for the Development of Complex Reactive Systems
IEEE Transactions on Software Engineering
KIDS: A Semiautomatic Program Development System
IEEE Transactions on Software Engineering
Engineering a simple, efficient code-generator generator
ACM Letters on Programming Languages and Systems (LOPLAS)
Towards increased productivity of algorithm implementation
SIGSOFT '93 Proceedings of the 1st ACM SIGSOFT symposium on Foundations of software engineering
Automated consistency checking of requirements specifications
ACM Transactions on Software Engineering and Methodology (TOSEM)
Documentation for safety critical software
ICSE '93 Proceedings of the 15th international conference on Software Engineering
Experiences Using Lightweight Formal Methods for Requirements Modeling
IEEE Transactions on Software Engineering
Automatic generation of state invariants from requirements specifications
SIGSOFT '98/FSE-6 Proceedings of the 6th ACM SIGSOFT international symposium on Foundations of software engineering
Using Abstraction and Model Checking to Detect Safety Violations in Requirements Specifications
IEEE Transactions on Software Engineering
Specifying the mode logic of a flight guidance system in CoRE and SCR
FMSP '98 Proceedings of the second workshop on Formal methods in software practice
Regular right part grammars and their parsers
Communications of the ACM
A refinement-based approach to deriving train controllers
High integrity software
TAME: Using PVS strategies for special-purpose theorem proving
Annals of Mathematics and Artificial Intelligence
META-AMPHION: Synthesis of Efficient Domain-Specific Program Synthesis Systems
Automated Software Engineering
Model Checking Complete Requirements Specifications Using Abstraction
Automated Software Engineering
Symbolic Finite Differencing - Part I
ESOP '90 Proceedings of the 3rd European Symposium on Programming
PADL '02 Proceedings of the 4th International Symposium on Practical Aspects of Declarative Languages
TACAS '98 Proceedings of the 4th International Conference on Tools and Algorithms for Construction and Analysis of Systems
SCR*: A Toolset for Specifying and Analyzing Software Requirements
CAV '98 Proceedings of the 10th International Conference on Computer Aided Verification
Viewing A Program Transformation System At Work
PLILP '94 Proceedings of the 6th International Symposium on Programming Language Implementation and Logic Programming
SCR: A Practical Approach to Building a High Assurance COMSEC Syste
ACSAC '99 Proceedings of the 15th Annual Computer Security Applications Conference
Generating Code from Hierarchical State-Based Requirements
RE '97 Proceedings of the 3rd IEEE International Symposium on Requirements Engineering
An Algorithm for Strengthening State Invariants Generated from Requirements Specifications
RE '01 Proceedings of the Fifth IEEE International Symposium on Requirements Engineering
Generating Regression Tests via Model Checking
COMPSAC '04 Proceedings of the 28th Annual International Computer Software and Applications Conference - Volume 01
Generating optimized code from SCR specifications
Proceedings of the 2006 ACM SIGPLAN/SIGBED conference on Language, compilers, and tool support for embedded systems
Random testing of formal software models and induced coverage
Proceedings of the 1st international workshop on Random testing
Towards provably correct code generation via horn logical continuation semantics
PADL'05 Proceedings of the 7th international conference on Practical Aspects of Declarative Languages
A process algebra based strategy for generating test vectors from SCR specifications
SBMF'12 Proceedings of the 15th Brazilian conference on Formal Methods: foundations and applications
Test case generation from natural language requirements based on SCR specifications
Proceedings of the 28th Annual ACM Symposium on Applied Computing
Hi-index | 0.00 |
Formal specifications of software systems are extremely useful because they can be rigorously analyzed, verified, and validated, giving high confidence that the specification captures the desired behavior. To transfer this confidence to the actual source code implementation, a formal link is needed between the specification and the implementation. Generating the implementation directly from the specification provides one such link. A program transformation system such as Paige's APTS can be useful in developing a source code generator. This paper describes a case study in which APTS was used to produce code generators that construct C source code from a requirements specification in the SCR (Software Cost Reduction) tabular notation. In the study, two different code generation strategies were explored. The first strategy uses rewrite rules to transform the parse tree of an SCR specification into a parse tree for the corresponding C code. The second strategy associates a relation with each node of the specification parse tree. Each member of this relation acts as an attribute, holding the C code corresponding to the tree at the associated node; the root of the tree has the entire C program as its member of the relation. This paper describes the two code generators supported by APTS, how each was used to synthesize code for two example SCR requirements specifications, and what was learned about APTS from these implementations.