This Article 
 Bibliographic References 
 Add to: 
Software Prototyping by Relational Techniques: Experiences with Program Construction Systems
November 1988 (vol. 14 no. 11)
pp. 1597-1609

A method for designing and prototyping program construction systems using relational databases is presented. Relations are the only data structures used inside the systems and for interfaces; programs extensively use relational languages, in particular relational algebra. Two large projects are described. The Ada Relational Translator (ART) is an experimental compiler-interpreter for Ada in which all subsystems, including the parser, semantic analyzer, interpreter, kernel, and debugger, use relations as their only data structure; the relational approach has been pushed to the utmost to achieve fast prototyping in a student environment. Multi-Micro Line (MML) is a tool set for constructing programs for multimicroprocessors' targets, in which relations are used for allocation and configuration control. Both experiences validate the approach for managing teamwork in evolving projects, identify areas where this approach is appropriate, and raise critical issues.

[1] Reference Manual for the Ada Programming Language, MIL-STD 1815a, U.S. Department of Defense, Jan. 1983.
[2] "Requirements for Ada Programming Support Environments, U.S. Department of Defense, Feb. 1980.
[3] T. P. Backer, "A one pass algorithm for overload resolution in Ada,"ACM Trans. Program. Lang., Syst., vol. 4, no. 4, pp. 601-614, 1982.
[4] M. Boariet al., "Multiple microprocessors programming techniques: MML, A new set of tools,"IEEE Comput., vol. 17, no. 1, pp. 47- 58, Jan. 1984.
[5] B. W. Boehm and A. T. Standish, "Software technology in the 1990's: Using an evolutionary paradigm,"IEEE Comput., vol. 16, no. 11, pp. 30-37, Nov. 1983.
[6] S. Ceri and S. Crespi-Reghizzi, "ART: Un compilatore per Ada progettato con tecniche relazionali,"Rivista Informatica, vol. 15, no. 3-4, pp. 267-277, July 1985.
[7] S. Ceri, G. Gottlob, and L. Lavazza, "Translation and optimization of logic queries: The algebraic approach," inProc. VLDB Conf., Koto, Japan, Aug. 1986.
[8] S. Ceriet al., "ALGRES: A system for the specification and prototyping of complex data bases,"IEEE Software, submitted for publication.
[9] E. F. Codd, "A relational model of data for large shared data banks,"Commun. ACM, pp. 377-387, June 1970.
[10] E. F. Codd, "Extending the relational database model to capture more meaning,"ACM Trans. Database Syst., vol. 4, no. 4, pp. 397-434, Dec. 1979.
[11] E. F. Codd, "ACM-Turing award lecture: Relational databases: A practical foundation for productivity,"Commun. ACM, vol. 25, no. 2, pp. 109-117, Feb. 1982.
[12] R. Conradi, T. Didriksen, and A. Lie, "IDL as a data-description language for a programming environment database," EPOS 15, Div. Comput. Sci., July 1986.
[13] G. Conte and D. Del Corso, Eds.,Multi-Microprocessor Systems for Real-Time Applications. Boston, MA: Reidel, 1985.
[14] A. Di Maioet. al., "Execution monitoring and debugging tool for Ada using relational algebra," inProc. Ada Int. Conf. (ACM Ada Lett., vol. V, issue 2, Sept./Oct. 1985), pp. 109-123.
[15] K. R. Dittrich, W. Gotthard, and P. C. Lockemann, "Damoken--A database system for software engineering environments," inProc. Int. Workshop Adv. Progr. Env., IFIP WG 2.4, Trondheim, June 1986.
[16] H. Eckardtet al., "Report on the database programming language DBPL," J. W. Goethe Univ., Frankfurt, West Germany, Tech. Rep., Oct. 1987.
[17] R. E. Fairley, "Ada debugging and testing support environment,"ACM SIGPLAN Notices, vol. 15, no. 11, pp. 16-25, Nov. 1980.
[18] H. Ganzinger and K. Ripken, "Operator identification in ADA: Formal specification, complexity, and concrete implementation,"ACM SIGPLAN Notices, vol. 16, no. 2, Feb. 1981.
[19] S. Gatti and L. Zoccolante, "MME: A new integrated programming support environment for distributed embedded systems," presented at the IEEE COMPEURO 88, Apr. 1988.
[20] C. Ghezzi and M. Jazayeri,Programming Language Concepts. New York: Wiley, 1987.
[21] G. Goos, W. A. Wulf, A. Evans, Jr., and K. J. Butler,28: An Intermediate Language for Ada(Lecture Notes in Computer Sci., vol. 161). Berlin: Springer-Verlag, 1983.
[22] S. Horwitz and T. Teitelbaum, "Generating editing environments based on relations and attributes,"ACM Trans. Program. Lang. Syst., vol. 8, no. 4, pp. 577-608, Oct. 1986.
[23] L. Ibsen, "A portable virtual machine for Ada,"Software Practice Experience, vol. 14, no. 1, pp. 17-29, Jan. 1984.
[24] J. M. Kamrad II, "Runtime organization for the Ada language system programs,"Ada Lett., vol. 3, no. 3, pp. 17-29, Nov.-Dec. 1983.
[25] W. Kent, "A simple guide to five normal forms in relational database theory,"Commun. ACM, vol. 26, no, 2, pp. 120-125, Feb. 1983.
[26] H. F. Korth, "Extending the scope of relational languages,"IEEE Software, vol. 1b, pp. 19-28, Jan. 1986.
[27] P. Kruchten and E. Shonberg, "Le système ADA/ED" Une experience de prototype utilisant le language SETL,"Tech. Sci. Inform., vol. 3, no. 3, pp. 193-200, May 1984.
[28] G. Jaeschke and H. J. Schek, "Remarks on the algebra of non first normal form relations," inProc. ACM Symp. Principles Database Syst., Los Angeles, CA, Mar. 1982, pp. 124-138.
[29] M. Linton, "Queries and views of programs using a relational data-base system," Ph.D. dissertation, Dep. Comput. Sci., Univ. Calif., Berkeley, CA, 1984.
[30] R. Lorieet al., "Supporting complex objects in a relational system for engineering databases" inQuery Processing in Database Systems, W. Kim, D. Reiner, and D. Batory, Eds. New York: Springer-Verlag, 1985.
[31] B. J. MacLennan, "Overview of relational programming,"ACM SIGPLAN Notices, vol. 18, no. 3, Mar. 1983.
[32] M. Olumi and G. Wiederhold, "Software project databases," IBM Res. Lab., San Jose, CA, Rep. RJ3862, Apr. 1983.
[33] T. Pennello, F. L. DeRemer, and R. Meyers, "A simplified operator identification scheme for Ada,"ACM SlGPLAN Notices, vol. 15, no. 7, 8, pp. 82-87, 1980.
[34] M. A. Roth, H. F. Korth, and A. Silberschatz, "Theory of non-first-normal-form relational databases," Univ. Texas, Austin, TX, Rep. TR-84-36, Dec. 1984.
[35] B. R. Schatzet al., "TCOL-ADA" An intermediate representation for the DoD standard programming language," Dep. Comput. Sci., Carnegie Mellon Univ., Pittsburgh, PA, Rep. CMU-CS-79-112, 1979.
[36] J. W. Schmidt, "Some high level constructs for data of type relation,"Trans. Database Syst., vol. 2, no. 3, pp. 247-261, 1977.
[37] M. D. Tedd, S. Crespi-Reghizzi, and A. Natali,Ada for Multi-Microprocessors, 2nd ed. Cambridge, UK Cambridge Univ. Press., 1987.
[38] J. D. Ullman,Principles of Databases Systems. Rockville, MD: Computer Science Press, 1982.
[39] C. A. Zehnder, Ed., "Database techniques for professional workstations," ETH, Zurich, Switzerland, Tech. Rep., 1983.

Index Terms:
programming environments; program construction systems; prototyping; relational databases; data structures; relational languages; relational algebra; Ada Relational Translator; ART; compiler-interpreter; parser; semantic analyzer; interpreter; kernel; debugger; Multi-Micro Line; MML; configuration control; Ada; data structures; program compilers; program interpreters; programming environments; relational databases
S. Ceri, S. Crespi-Reghizzi, A. Di Maio, L.A. Lavazza, "Software Prototyping by Relational Techniques: Experiences with Program Construction Systems," IEEE Transactions on Software Engineering, vol. 14, no. 11, pp. 1597-1609, Nov. 1988, doi:10.1109/32.9048
Usage of this product signifies your acceptance of the Terms of Use.