|
ABSTRACT
Software engineering research and programming language design have enjoyed a symbiotic relationship, with traceable impacts since the 1970s, when these areas were first distinguished from one another. This report documents this relationship by focusing on several major features of current programming languages: data and procedural abstraction, types, concurrency, exceptions, and visual programming mechanisms. The influences are determined by tracing references in publications in both fields, obtaining oral histories from language designers delineating influences on them, and tracking cotemporal research trends and ideas as demonstrated by workshop topics, special issue publications, and invited talks in the two fields. In some cases there is conclusive data supporting influence. In other cases, there are circumstantial arguments (i.e., cotemporal ideas) that indicate influence. Using this approach, this study provides evidence of the impact of software engineering research on modern programming language design and documents the close relationship between these two fields.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
ACMCS. 1989. ACM Comput. Surv., volume 21, issue 3.
|
| |
2
|
|
| |
3
|
|
| |
4
|
|
| |
5
|
|
 |
6
|
|
| |
7
|
|
| |
8
|
Boehm, B. W. 1976. Software enginering. IEEE Trans. Comput. C-25, 12 (Dec.), 1226--1241.
|
 |
9
|
|
| |
10
|
|
| |
11
|
Bron, C., Fokkinga, M., and Haas, A. 1975. A proposal for dealing with abnormal termination of programs. Tech. Rep. Mem 150, Twente University of Technology. November.
|
| |
12
|
Margaret M. Burnett , Marla J. Baker , Carisa Bohus , Paul Carlson , Sherry Yang , Pieter van Zee, Scaling Up Visual Programming Languages, Computer, v.28 n.3, p.45-54, March 1995
[doi> 10.1109/2.366157
]
|
| |
13
|
|
| |
14
|
Margaret Burnett , Curtis Cook , Omkar Pendse , Gregg Rothermel , Jay Summet , Chris Wallace, End-user software engineering with assertions in the spreadsheet paradigm, Proceedings of the 25th International Conference on Software Engineering, May 03-10, 2003, Portland, Oregon
|
 |
15
|
|
| |
16
|
|
| |
17
|
|
| |
18
|
Collins, A. M. and Quillian, M. 1969. Retrieval time for semantic memory. J. Verb. Learn. Verb. Behav. 8, 240--247.
|
| |
19
|
Cooper, A. 1996. Why I am called ‘the father of Visual Basic’. http://www.cooper.com. Accessed December 26, 2002.
|
 |
20
|
|
| |
21
|
Cox, P. T., Giles, F. R., and Pietrzykowski, T. 1989. Prograph: A step towards liberating programming from textual conditioning. In 1989 IEEE Workshop on Visual Languages. 150--156.
|
| |
22
|
|
| |
23
|
Dahl, O. and Nygaard, K. 1967. SIMULA 67 common base definition. Tech. rep., Norwegian Computing Center.
|
| |
24
|
|
| |
25
|
Dijkstra, E. 1969. Structured programming. In Software Engineering Techniques: Report on a Conference sponsored by the NATO Science Committees, J. Buxton and B. Randell, Eds. Rome, Italy, 84--88.
|
 |
26
|
|
| |
27
|
Dijkstra, E. W. 1968a. Cooperating sequential processes. In Programming Languages, F. Genuys, Ed. Academic Press, 43--112.
|
 |
28
|
|
| |
29
|
DOD, U. 1980. Reference manual for the Ada programming language. In DOD. New York.
|
| |
30
|
|
 |
31
|
|
 |
32
|
|
| |
33
|
Gannon, J. and Horning, J. 1975. Language design for programming reliability. IEEE Trans. Softw. Eng. SE-1, 2 (June), 179--191.
|
| |
34
|
|
| |
35
|
|
| |
36
|
|
| |
37
|
|
 |
38
|
|
 |
39
|
|
| |
40
|
|
 |
41
|
|
| |
42
|
Green, T. and Petre, M. 1996. Usability analysis of visual programming environments: A ‘cognitive dimensions’ framework. J. Vis. Lang. Comput. 7, 2 (June), 131--174.
|
| |
43
|
Guttag, J. V., Horning, J. J., and Wing, J. M. 1985. The Larch family of specification languages. IEEE Softw. 2, 5 (Sept.), 24--36.
|
| |
44
|
|
| |
45
|
Habermann, A. N. 1973. Critical comments on the programming language Pascal. Acta Informatica 3, 47--57.
|
 |
46
|
|
| |
47
|
Hansen, P. B. 1975. The programming language concurrent Pascal. IEEE Trans. Softw. Eng. 1, 2, 199--207.
|
 |
48
|
|
| |
49
|
|
 |
50
|
Richard Helm , Kim Marruitt , Martin Odersky, Building visual language parsers, Proceedings of the SIGCHI conference on Human factors in computing systems: Reaching through technology, p.105-112, April 27-May 02, 1991, New Orleans, Louisiana, United States
[doi> 10.1145/108844.108860]
|
| |
51
|
|
 |
52
|
|
| |
53
|
Hoare, C. 1974a. Hints on programming language design. In State of the Art Report 20: Computer Systems Reliabilty, C. Bunyan, Ed. Pergamon/Infotech. This paper originated in a keynote address at the ACM SIGPLAN POPL conference in Boston in October 1973 and although it was not in the proceedings, it was distributed at the conference. A 1989 collection of Dr. Hoare's essays entitled Essays in Computing Science published by Prentice Hall, also contains a reprint of this paper.
|
 |
54
|
|
 |
55
|
|
 |
56
|
|
| |
57
|
Horning, J. J. 1979. Programming languages. In Computing Systems Reliability, T. Anderson and B. Randell, Eds. Cambridge University Press, 109--152.
|
| |
58
|
Horowitz, E. and Munson, J. G. 1984. An expansive view of reusable software. Trans. Softw. Eng. SE-10, 5 (Sept.), 477--487.
|
 |
59
|
Jean D. Ichbiah , Bernd Krieg-Brueckner , Brian A. Wichmann , John G. P. Barnes , Olivier Roubine , Jean-Claude Heliard, Rationale for the design of the Ada programming language, ACM SIGPLAN Notices, v.14 n.6b, p.1-261, June 1979
[doi> 10.1145/956653.956654]
|
| |
60
|
IEEESW 1989. IEEE Software, issue on parallel programming.
|
| |
61
|
IFIP 2004. http://www.mlaa.com.au/IFIPWG2.4/index.htm.
|
 |
62
|
|
| |
63
|
Keffer, T. 1995. Programming with the standard template library, sage advice for coping with the stl. Dr. Dobb's Journal 1995, SI3.
|
| |
64
|
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C. V., Loingtier, J.-M., and Irwin, J. 1997. Aspect-oriented programming. In Proceedings of the European Conference on Object-oriented Programming (ECOOP). Springer-Verlag LNCS 1241.
|
| |
65
|
|
| |
66
|
Library, I. S. R. 1970. IBM System/360 Operating System PL/I (F) Language Reference Manual. 4th edition.
|
 |
67
|
|
 |
68
|
|
| |
69
|
|
| |
70
|
Liskov, B. and Snyder, A. 1979. Exception handling in CLU. IEEE Trans. Softw. Eng. SE-5, 6 (Nov.), 546--558.
|
 |
71
|
|
 |
72
|
|
| |
73
|
Liskov, B. and Zilles, S. 1975. Specification techniques for data abstractions. IEEE Trans. Softw. Eng. SE-1, 7--19.
|
| |
74
|
Liskov, B. H. 1972. A design methodology for reliable software systems. In Proceedings of the Fall Joint Computer Conference. 191--198.
|
 |
75
|
|
 |
76
|
|
 |
77
|
|
 |
78
|
Ole Lehrmann Madsen , Boris Magnusson , Birger Mølier-Pedersen, Strong typing of object-oriented languages revisited, Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications, p.140-150, September 1990, Ottawa, Canada
|
| |
79
|
|
| |
80
|
McIlroy, D. 1976. Mass-produced software components. In Software Engineering Concepts and Techniques, 1968 NATO Conference on Software Engineering, J. Buxton, P. Naur, and B. Randell, Eds. 88--98.
|
 |
81
|
|
| |
82
|
Murray, R. 1988. Building well-behaved type relationships in C++. In Proceedings of USENIX. 19--30.
|
 |
83
|
|
 |
84
|
|
| |
85
|
|
| |
86
|
Parnas, D. 1971. On the criteria to be used in decomposing systems into modules. Tech. Rep. Department of Computer Science, Carnegie-Mellon University.
|
 |
87
|
|
 |
88
|
|
| |
89
|
|
 |
90
|
|
| |
91
|
|
 |
92
|
|
 |
93
|
|
 |
94
|
|
| |
95
|
|
 |
96
|
|
 |
97
|
|
| |
98
|
Jeremy Roschelle , Chris DiGiano , Manolis Koutlis , Alexander Repenning , Jonathan Phillips , Nicholas Jackiw , Dan Suthers, Developing Educational Software Components, Computer, v.32 n.9, p.50-58, September 1999
[doi> 10.1109/2.789751
]
|
| |
99
|
Gregg Rothermel , Lixin Li , Christopher DuPuis , Margaret Burnett, What you see is what you test: a methodology for testing form-based visual programs, Proceedings of the 20th international conference on Software engineering, p.198-207, April 19-25, 1998, Kyoto, Japan
|
 |
100
|
|
 |
101
|
|
| |
102
|
Rubin, F. 1987. 'goto considered harmful considered harmful. Comm. ACM 30, 3, 195--196.
|
| |
103
|
Rubin, R. V., Golin, E. J., and Reiss, S. P. 1985. Thinkpad: A graphical system for programming by demonstration. IEEE Softw. 2, 2 (Mar.), 73--79.
|
| |
104
|
|
| |
105
|
Shaw, M. 1981. ALPHARD: Form and Content. Springer-Verlag, New York.
|
| |
106
|
Shaw, M. 1984. Abstraction techniques in modern programming languages. IEEE Softw. 1, 4, 10--26.
|
| |
107
|
|
| |
108
|
Shaw, M., Almes, G. T., Newcomer, J., Reid, B., and Wulf, W. 1978. Comparison of programming languages for software engineering. Tech. rep., Department of Computer Science, CMU.
|
 |
109
|
|
| |
110
|
Smith, D. C. 1977. Pygmalion: A Computer Program to Model and Stimulate Creative Thought. Birkhauser.
|
| |
111
|
Stroustrup, B. 1987. Possible directions for C++. In Proceedings of USENIX C++ Workshop.
|
 |
112
|
|
| |
113
|
Sutherland, I. E. 1963. Sketchpad: A man--machine graphical communication system. In AFIPS Spring Joint Computer Conference.
|
| |
114
|
Sutherland, W. 1966. On-line graphical specification of computer procedures. Tech. rep., MIT. MIT Ph.D. Thesis.
|
 |
115
|
|
 |
116
|
|
| |
117
|
|
| |
118
|
TGS Systems. 1990. Prograph Tutorial Manual. The Gunakara Sun Systems, Ltd. 2nd Printing, July.
|
| |
119
|
|
| |
120
|
van Wijngaarden, A., Mailloux, B., Peck, J., Koster, C., Sintzoff, M., Lindsey, C., Meertens, L., and Fisker, R. G. E. 1968. Revised Report on the Algorithmic Langauge ALGOL68. Also appeared in ACM SIGPLAN Notices, Volume 12, Number 5, 1--70, May 1977; available online at http://members.dokom.net/2.kloke/RR/rrTOC.html.
|
| |
121
|
|
| |
122
|
Wegner, P. 1984. Capital-intensive software technology. IEEE Softw. 1, 3 (July), 43--97.
|
 |
123
|
|
| |
124
|
Wirth, N. 1971b. The programming language Pascal. Acta Informatica 1, 35--63.
|
| |
125
|
Wirth, N. 1977. Modula: A language for modular multiprogramming. Software Practice and Experience 7, 3--35.
|
| |
126
|
Wulf, W., London, R., and Shaw, M. 1976. An introduction to the construction and verification of alphard programs. IEEE Trans. Softw. Eng. SE-2, 4, 390.
|
 |
127
|
|
 |
128
|
|
|