ACM Home Page
Please provide us with feedback. Feedback
The impact of software engineering research on modern progamming languages
Full text PdfPdf (3.18 MB)
Source ACM Transactions on Software Engineering and Methodology (TOSEM) archive
Volume 14 ,  Issue 4  (October 2005) table of contents
Pages: 431 - 477  
Year of Publication: 2005
ISSN:1049-331X
Authors
Barbara G. Ryder  Rutgers University, Piscataway, NJ
Mary Lou Soffa  University of Virginia, Charlottesville, VA
Margaret Burnett  Oregon State University, Corvallis, OR
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 46,   Downloads (12 Months): 449,   Citation Count: 4
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Review this Article  
Save this Article to a Binder    Display Formats: BibTex  EndNote ACM Ref   
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1101815.1101818
What is a DOI?

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
 
13
 
14
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
 
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
 
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
 
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
 
99
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


Collaborative Colleagues:
Barbara G. Ryder: colleagues
Mary Lou Soffa: colleagues
Margaret Burnett: colleagues