This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Semi-Automatic Program Construction from Specifications Using Library Modules
September 1991 (vol. 17 no. 9)
pp. 853-871

A method of semiautomatic specification refinement and program generation using library modules, is described. Users write their specifications and modify and rearrange them so that they can be refined with the aid of the library modules. When a specification is given, a refinement system, called MAPS (module-aided program construction system) searches for library modules applicable to the given specification, replaces the specification with a more detailed description written in the operation part of the modules, and converts the refined specification into a program written in a programming language designated by the user. Case-like expressions or pseudo-natural language expressions are used for describing user's specifications and specifications for library modules.

[1] Parnas, D.L. 1972. On the Criteria to be Used in Decomposing Systems into Modules,Communications of the ACM, Vol.15, pp. 1053-1058.
[2] D. Teichroew and E. A. Hershey, "PSL/PSA-A computer-aided technique for structured documentation and analysis of information processing systems,"IEEE Trans. Software Eng., vol. SE-3, pp. 41-48, Jan. 1977.
[3] N. Wirth, "Program development by stepwise refinement,"Commun. ACM, vol. 14, no. 4, pp. 221-227, Apr. 1971.
[4] J. A. Robinson, "A machined-oriented logic based on the resolution principle,"J. Assoc. Comput. Mach., vol. 12, no. 1, pp. 23-41, Jan. 1965.
[5] T. Pietrzykowski, "A complete mechanization of second-order-type theory,"J. Assoc. Comput. Mach., vol. 20, no. 2, pp. 333-365, Apr. 1973.
[6] J. L. Darlington, "Automatic synthesis of SNOBOL programs," inComputer-Oriented Learning Process, J. C. Simon, Ed. Nordhoff-Leyden, 1976, pp. 443-453.
[7] D. R. Barstow,Knowledge-Based Program Construction. Amsterdam: North-Holland, 1979.
[8] H. Partsch and R. Steinbrüggen, "Program transformation systems,"ACM Comput. Surveys, vol. 15, no. 3, pp. 199-236, Sept. 1983.
[9] J. M. Neighbors, "The Draco approach to constructing software from reusable components,"IEEE Trans. Software Eng., vol. SE-10, pp.56 4-573, Sept. 1984.
[10] E. Horowitz and J. B. Munson, "An expansive view of reusable software,"IEEE Trans. Software Eng., vol. SE-10, pp. 477-487, Sept. 1984.
[11] Y. Matsumoto, "Some experience in promoting reusable software: presentation in higher abstract levels,"IEEE Trans. Software Eng., vol. SE-10, pp. 502-512, Sept. 1984.
[12] D. L. Parnas, P. C. Clements, and D. M. Weiss, "The modular structure of complex systems,"IEEE Trans. Software Eng., vol. SE-11, pp. 259-266, Mar. 1985.
[13] D. R. Barstow, "Domain-specific automatic programming,"IEEE Trans. Software Eng., vol. 11, no. 11, pp. 1321-1336, Nov. 1985.
[14] I. J. Hayes, "Specification-directed module testing,"IEEE Trans. Software Eng., vol. SE-12, pp. 124-133, Jan. 1986.
[15] Z. L. Lichtman, "Generation and consistency checking of design and program structures,"IEEE Trans. Software Eng., vol. SE-12, pp. 172-181, Jan. 1986.
[16] R. T. Mittermeir and W. Rossak, "Software bases and software archives, " inExploring Technology Today and Tomorrow, pp. 21-28, 1987.
[17] G. E. Kaiser, "Composing software systems from reusable building blocks," inProc. 20th Hawaii Int. Conf. Syst. Sci., 1987, vol. 2, pp. 536-545.
[18] N. S. Prywes and A. Pnueli, "Compilation of nonprocedural specifications into computer programs,"IEEE Trans. Software Eng., vol. SE-9, pp. 267-279, May 1983.
[19] Z. Manna and R. Waldinger,Studies in Automatic Programming Logic. New York: North-Holland, 1977.
[20] P. R. Cohen and E. A. Feigenbaum, Eds.,The Handbook of Artificial Intelligence, vol. 3. Los Altos, CA: Kaufmann, 1982, chap. XV, pp. 513-562.
[21] B. Vauquois, "Aspect of mechanical translation in 1979," GETA, Univ. Grenoble, 1979.
[22] F. Nishida, S. Takamatsu, and H. Kuroki, "English-Japanese translation through case structure conversion," inProc. 8th Int. Conf. Comput. Linguist., 1980, pp. 447-454.
[23] F. Nishida and S. Takamatsu, "Japanese-English translation through internal expressions," inProc. 9th Int. Conf. Comput. Linguist., 1982, pp. 271-276.
[24] F. Nishida and Y. Fujita, "Semi-automatic program refinement from specification using library modules,"Trans. Inf. Soc. Japan, vol. 25, no. 5, pp. 785-793, Sept. 1984 (in Japanese).
[25] F. Nishida, Y. Fujita, and S. Takamatsu, "Semi-automatic program generation from Japanese specifications by the aids of library modules" inProc. Symp. on Prototyping and Requirements Specification, Inf. Proc. Soc. Japan, Apr. 1986, pp. 111-120 (in Japanese).
[26] F. Nishida, Y. Fujita, and S. Takamatsu, "Construction of a modular and portable translation system," inProc. 11th Int. Conf. Comput. Linguist., Aug. 1986, pp. 649-651.
[27] E. Charniak and Y. Wilks, Eds., "Linguistics," inComputational Semantics(Fundamental Studies in Comput. Sci., vol. 4): Amsterdam: North-Holland, 1976.
[28] F. Nishida, Y. Fujita, and S. Takamatsu, "Refinement and error detection of program specifications by a linking technique of library modules,"Trans. Inf. Proc. Soc. Japan, vol. 28, no. 5, pp. 489-498, May 1987 (in Japanese).
[29] F. Nishida, S. Takamatsu, and T. Tani, "Transformation between Japanese expressions and formal expressions in program specifications,"Trans. Inf. Proc. Soc. Japan, vol. 29, no. 4, pp. 368-377, Apr. 1988 (in Japanese).
[30] C. J. Fillmore, "The case for case, " inUniversals in Linguistic Theory, E. Bach and R. Harms, Eds. New York: Holt, Rinehart and Winston, 1968.

Index Terms:
case-like expressions; semiautomatic specification refinement; program generation; library modules; refinement system; MAPS; module-aided program construction system; programming language; pseudo-natural language expressions; automatic programming; formal specification; software tools; subroutines
Citation:
F. Nishida, S. Takamatsu, Y. Fujita, T. Tani, "Semi-Automatic Program Construction from Specifications Using Library Modules," IEEE Transactions on Software Engineering, vol. 17, no. 9, pp. 853-871, Sept. 1991, doi:10.1109/32.92909
Usage of this product signifies your acceptance of the Terms of Use.