BIBLIOGRAPHY
|
Remember that you can use
Ariadne and other library
resources through the world wide web.
If you are looking for an article that isn't available through our library
or WMU's, check to see if I have a copy before requesting it through
inter-library loan.
Click here for some references for various
languages - if you find or know of others, feel free to e-mail me and I'll
add them to our list.
Haskell
- Bird, R. Introduction to Functional Programming Using Haskell,
2nd Edition. Pearson Prentice Hall, Harlow, England, 1998.
- Davie, A.J.T. An Introduction to Functional Programming Systems
Using Haskell. Cambridge University Press, Cambridge, UK, 1992.
- Hudak, P., Peterson, J., Fasel, J. (1999) A Gentle Introduction to
Haskell 98, CiteSeer Scientific Leterature Digital Library,
URL:
http://citeseer.ist.psu.edu/hudak99gentle.html
- Hudak, P. The Haskell School of Expression: Learning Functional
Programming through Multimedia.
Cambridge University Press, Cambridge, UK, 2000.
- Thompson, S. Haskell: The Craft of Functional Programming, 2nd
Edition.
Pearson Addison Wesley, Harlow, England, 1999.
- Hugs Manual
(or pdf version)
- Haskell Tutorial at
www.haskell.org
- The Wikipedia entry on Haskell Curry
and on the language Haskell
See below for references about other programming languages and about
some of the topics that will come up in this course.
General Programming Languages References
- Appleby, D. and VandeKopple, J. (1997) Programming Languages:
Paradigm and Practice, 2nd Edition. McGraw-Hill, Boston, MA.
- Bergin, T.J. and Gibson, R.G., editors (1996) History of Programming
Languages II. Addison-Wesley, Reading, MA.
- Ghezzi, C. and Jazayeri, M. (1998) Programming Language
Concepts, 3rd Edition,
John Wiley & Sons, New York, NY.
- Horowitz, E., editor (1987) Programming Languages: A Grand Tour,
third edition. Computer Science Press, Rockville, MD.
- Louden, K. (2003) Programming Languages: Principles and Practice,
second edition. Thompson Brooks/Cole, Pacific Grove, CA.
- Pratt, T.W. and Zelkowitz, M.V. (1999) Programming Languages: Design
and Implementation, third edition. Prentice Hall, Upper Saddle River,
NJ.
- Roosta, S. (2003) Foundations of Programming Languages: Design and
Implementation. Thompson Brooks/Cole, Pacific Grove, CA.
- Sebesta, R.W. (2004) Concepts of Programming Languages, sixth
edition. Pearson Education (Addison-Wesley), Boston, MA.
- Sethi, R. (1996) Programming Languages: Concepts and Constructs,
second edition. Addison-Wesley, Reading, MA.
- Tucker, A. and Noonan, R. (2002) Programming Languages: Principles and
Paradigms
- Webber, A.B.. (2003) Modern Programming Languages: A Practical
Introduction. Franklin, Beedle & Associates, Wilsonville. OR.
- Wegner, P. (1976) "Programming languages -- the first 25 years."
IEEE Transactions on Computers, Vol. C-25, No. 12, pp. 1207-1225.
- Wexelblat, R.L. editor (1981) History of Programming Languages.
Academic Press (ACM Monograph Series), New York.
Journal Articles about Programming Languages Concepts and Paradigms
Language Design Issues
- Gannon, J.D. and J.J. Horning (1975), "Language design for programming
reliability." IEEE Transactions on Software Engineering,
Vol. SE-1, No. 2, pp. 179-191.
- Hoare, C.A.R. (1973) "Hints on programming language design." In
[Horowitz 1987], pp. 31-40.
- Hoare, C.A.R. (1981) "The emperor's old clothes." Communications
of the ACM, Vol. 24, No. 2, pp. 75-83.
- Shaw, M. et al. (1981) "A comparison of programming languages
for software engineering." Software -- Practice and Experience,
Vol. 11, pp. 1-52.
Formal Semantics
- Ashcraft, E.A. and W.W. Wadge (1982) "Rx for semantics."
ACM Transactions on Programming Languages and Systems,
Vol. 4, No. 2, pp. 283-294.
- Hoare, C.A.R. and P.E. Lauer (1974) "Consistent and complementary
formal theories of the semantics of programming languages."
Acta Informatica, Vol. 3, pp. 135-153.
- Marcotty, M. et al. (1976) "A sampler of formal definitions."
ACM Computing Surveys, Vol. 8, No. 2, pp. 191-276.
Control Structures
- Dijkstra, E.W. (1968) "Go to statement considered harmful."
Communications of the ACM, Vol. 11, No. 3, pp. 147-148.
- Dahl, O. et al. (1972) Structured Programming.
Academic Press, New York.
- Knuth, D.E. (1974) "Structured programming with go to statements."
ACM Computing Surveys, Vol. 6, No. 4, pp. 261-301.
Data Types
- Cleaveland, J.C. (1986) An Introduction to Data Types.
Addison-Wesley, Reading, MA.
- Feuer, A. and N. Gehani (1982) "A comparison of the programming languages
C and Pascal." ACM Computing Surveys, Vol. 14, No. 1, pp. 73-92.
- Gries, D. and N. Gehani (1977) "Some ideas on data types in high-level
languages." Communications of the ACM, Vol. 20, No. 6, pp. 414-420.
- Tanenbaum, A.S. (1978) "A comparison of Pascal and ALGOL 68."
Computer Journal, Vol. 21, pp. 316-323.
Encapsulation
- Guttag, J.V. (1977) "Abstract data types and the development of data
structures." Communications of the ACM, Vol. 20, No. 6,
pp. 396-404.
- Hanson, D.R. (1981) "Is block structure necessary?"
Software -- Practice and Experience, Vol. 11, pp. 853-866.
- Liskov, B.H. and S.N. Zilles (1974) "Programming with abstract data
types." ACM SIGPLAN Notices, Vol. 9, No. 4, pp. 50-59.
- Parnas, D.L. (1972) "On the criteria to be used in decomposing
systems into modules." Communications of the ACM, Vol. 15, No. 12,
pp. 1053-1058.
Inheritance
- Snyder, A. (1986) "Encapsulation and inheritance in object-oriented
programming." ACM SIGPLAN Notices, Vol. 21, No. 11, pp 38-45.
- Taivalsaar, A. (1993) "On the notion of object." Journal of
Systems and Software, Vol. 21., No. 1, pp. 3-16.
Object-Oriented Languages
- Wegner, P. (1987) "The Object-Oriented Classification Paradigm."
In: Bruce Shiver, Peter Wegner (eds.), Research Directions in Object-Oriented Programming,
MIT Press, pp. 479-560.
Functional Languages
- Backus, J. (1978) "Can programming be liberated from the von Neumann
style? A functional style and its algebra of programs." Communications
of the ACM, Vol. 21, No. 8, pp. 613-641.
- Hudak, P. (1989) "Conception, evolution, and application of functional
programming languages." ACM Computing Surveys, Vol. 21, No. 3,
pp. 359-411.
- McCarthy, J. (1960) "Recursive functions of symbolic expressions and their
computation by machine, Part I." Communications of the ACM,
Vol. 3, No. 4, pp. 184-195.
Declarative Languages
- Warren, D.H.D. et al. (1977) "Prolog: the language and its
implementation compared to LISP." ACM SIGPLAN Notices, Vol. 12,
No. 8.
Scripting Languages
- Ousterhout, J.K. (1998) "Scripting: higher-level programming for the
21st century." IEEE Computer, Vol. 31, No. 3, pp. 23-30.
Books and Articles about a Variety of Programming Languages
Algol
- Dijkstra, E.W. (1960) A primer of Algol 60 programming.
Academic Press, New York.
- Naur, P. (1963) "Revised report on the algorithmic language Algol 60."
Communications of the ACM, Vol. 6, No. 1, pp. 1-17.
- Naur, P. (1981) "The European side of the last phase of the development
of ALGOL." In [Wexelblat 1981], pp. 92-139.
- Perlis, A.J. (1981) "The American side of the development of ALGOL."
In [Wexelblat 1981], pp. 75-91.
Ada
- Barnes, J.G.P. (1984) Programming in Ada. Addison-Wesley,
Reading, MA.
- Ichbiah, J.D. et al. (1979) "Rationale for the design of the Ada
programming language." ACM SIGPLAN Notices, Vol. 14, No. 6B.
- Whitaker, W.A. (1993) "Ada - The Project, the DoD higher order language
working group." ACM SIGPLAN Notices, Vol. 28, No. 3, pp. 299-331.
Alma-0
- Apt, K.R. et al. (1998) "Alma-0: An imperative language
that supports declarative programming." ACM Transactions on
Programming Languages and Systems, Vol. 20, No. 5, pp. 1014-1066.
- Apt, K.R. and A. Schaerf (1999) "Programming in Alma-0, or Imperative
and Declarative Programming Reconciled." In D.M. Gabbay and M. de Rijke,
editors, Frontiers of Combining Systems 2,
Research Studies Press Ltd, pp. 1-16.
C
- Kernighan, B.W., and D.M. Ritchie (1988) The C Programming
Language, second edition. Prentice-Hall, Englewood Cliffs, NJ.
- Ritchie, D.M. (1993) "The development of the C language."
In [Bergin and Gibson 1996], pp. 671-687.
C++
- Stroustrup, B. (1991) The C++ Programming Language.
Addison-Wesley, Reading, MA.
- Stroustrup, B. (1994) The Design and Evolution of C++.
Addison-Wesley, Reading, MA.
- Stroustrup, B. (1993) "A history of C++: 1979-1991."
In [Bergin and Gibson 1996], pp. 699-755.
Cobol
- Sammet, J. (1981) "The early history of COBOL." In [Wexelblat 1981],
pp.199-243.
Concurrent Pascal
- Brinch Hansen, P. (1975) "The programming language Concurrent Pascal."
IEEE Transactions on Software Engineering, Vol. SE-1, No. 2,
pp. 199-207.
- Brinch Hansen, P. (1993) "Monitors and Concurrent Pascal: A personal
history." In [Bergin and Gibson 1996].
- Brinch Hansen, P. (1978) "Distributed processes: A concurrent programming
concept" Communications of the ACM, Vol. 21, No. 11, pp. 934-941.
Fortran
- Backus, J. (1981) "The history of FORTRAN I, II, and III." In
[Wexelblat 1981], pp. 25-45.
Lisp
- McCarthy, J. (1981) "History of Lisp." In [Wexelblat 1981], pp. 173-185.
- Steele, G.L. Jr. (1984) Common Lisp. Digital Press,
Burlington, MA.
- Winston, P.H. and B.K.P. Horn (1989) Lisp. Addison-Wesley,
Reading, MA.
ML
- Milner, R., M. Tofte, and R. Harper (1990) The Definition of
Standard ML. MIT Press, Cambridge, MA.
- Ullman, J.D. (1994) Elements of ML Programming. Prentice Hall,
Englewood Cliffs, NJ.
Pascal
- Haberman, A.N. (1973) "Critical comments on the programming language
Pascal." Acta Informatica, Vol. 3, pp. 47-58.
- Jensen, K. and N. Wirth (1985) Pascal User Manual and Report,
third edition. Springer-Verlag, Berlin.
- Tennent (1978) "Another look at type compatibility in Pascal."
Software -- Practice and Experience, Vol. 8, pp. 429-437.
- Welsh, J. et al. (1977) "Ambiguities and insecurities in Pascal."
Software -- Practice and Experience, Vol. 7, pp. 685-696.
- Wirth, N. (1993) "Recollections on the development of Pascal."
In [Bergin and Gibson 1996], pp. 97-111.
Perl
- Wall, L. et al. (1996) Programming perl, second edition.
O'Reilly & Associates, Sebastopol, CA.
PL/I
- Radin, G. (1981) "The early history and characteristics of PL/I."
In [Wexelblat 1981], pp. 551-575.
Prolog
- Clocksin, W.F. and C.S. Mellish (1987) Programming in Prolog.
Springer-Verlag, Berlin.
- Colmerauer, A. and P. Roussel (1993) "The birth of Prolog."
ACM SIGPLAN Notices, Vol. 28, No. 3, pp. 37-52.
- Kowalski, R.A. (1988) "The early years of logic programming."
Communications of the ACM, Vol. 31, No. 1, pp. 38-43.
- Sterling, L. and E. Shapiro (1986) The Art of Prolog. MIT Press,
Cambridge, MA.
Python
Simula
- Birtwistle, M.G. et al. (1973) Simula Begin.
Petrocelli/Charter, New York.
- Nygaard, K. and O.J. Dahl (1981) "The development of the Simula
languages." In [Wexelblat 1981], pp. 439-480.
Smalltalk
- Goldberg, A., and D. Robson (1983) Smalltalk-80: The Language and its
Implementation. Addison-Wesley, Reading, MA.
- Kay, A.C. (1993) "The early history of Smalltalk."
In [Bergin and Gibson 1996], pp. 511-579.
- Krasner (1983) Smalltalk-80: Bits of History, Words of Advice.
Addison-Wesley, Reading, MA.
|