- Literate
Programming
- More Literate
Programming
- The
Literate Programming FAQ
- NOWEB
-
Literate Programming in FORTH
- SGML/XML
and Literate Programming
-
Literate Programming in XML
- Getting
Started with LaTeX
- Go
To Statement Considered Harmful by E.W.
Dijkstra.
-
Structured Programming (courtesy Columbia
College Chicago)
-
Programming Language History (link courtesy
Matthew Hancock)
-
ACM SIGPLAN Notices, 28(3), 1993
(contains a nice collection of short articles on
several important PL's)
- The Next
700 Programming Languages by P.J. Landin.
Communications of the ACM, 9(3), 157-166,
166.
- The Ten
Mini-Languages: A Study of Topical Issues in
Programming Languages by H.F. Ledgard. ACM
Computing Surveys, 3(3), 115-146, 1971.
- Semantics
of Programming Languages: A Tool-Oriented
Approach, Computing Research Repository
Technical Report cs.PL/9911001, 1999.
- One
Giant Step Backward by R.L. Glass.
Communications of the ACM, 46(5), 21-23,
2003.
- A Brief
History of Just-in-Time by J. Aycock. ACM
Computing Surveys 35(2), 97-113, 2003.
- The
ACM "Hello World" Project
- A Brief
Introduction to Pascal by P. Lee. ACM
SIGPLAN Notices, 28(3), 63-64, 1993.
- A Brief
Introduction to FORTH by P.J. Koopman Jr.
ACM SIGPLAN Notices, 28(3), 357-358,
1993.
- Introduction
to Automata Theory, Languages, and
Computation by J.E. Hopcroft, R. Motwani,
and J.D. Ullman. Addison-Wesley, Boston, MA, Third
edition, MA, 2006.
- The UNIX
Programming Environment by B.W. Kernighan
and B. Pike. Prentice Hall, Upper Saddle River, NJ,
1984.
- Installing and using Free
Pascal
Functional Programming
- Installing and
using functional programming languages
-
Why Functional Programming Matters by J.
Hughes, The Computer Journal, 32(2),
98-107, 1989.
- Conception,
Evolution, and Application of Functional
Programming Languages
- Structure and
Interpretation of Computer Programs
(Abelson and Sussman's classic). MIT Press,
Cambridge, MA, 1996.
- Essentials of
Programming Languages by D.P. Friedman, M.
Wand, and C.T. Haynes. MIT Press, Cambridge, MA,
Second edition, 2001.
- Hackers and Painters: Big Ideas from the
Computer Age by Paul Graham. O'Reilly, Beijing,
2004.
- Brief
introduction to four [important] programming
language concepts (courtesy Joe Morrison)
- Lazy
versus Strict by P. Wadler. ACM Computing
Surveys, 28(2), 318-320, 1996.
- LISP (Scheme and COMMON LISP)
- A
Brief Introduction to LISP by G.J. Sussman
et al. ACM SIGPLAN Notices,
28(3), 361-362, 1993.
-
The Roots of LISP by P. Graham
-
The Little Schemer by D.P. Friedman and
M. Felleisen. MIT Press, Cambridge, MA, Fourth
edition, 1996.
-
The Seasoned Schemer by D.P. Friedman
and M. Felleisen. MIT Press, Cambridge, MA,
1996.
- The Scheme
Programming Language by R.K. Dybvig.
Prentice Hall, Cambridge, MA, Second edition,
1996.
- The Scheme
Programming Language by R.K. Dybvig.
Prentice Hall, Cambridge, MA, Third edition,
2003.
- ANSI
COMMOM LISP by P. Graham. Prentice
Hall, Upper Saddle River NJ, 1995.
- Paul
Graham's website (contains lots of useful
information including a collection of
interesting essays
and a LISP
FAQ)
- Beating
the Averages (the inspirational story of
Paul Graham, Viaweb, and shopping carts!)
- A
Conversation with Paul Graham in
Communications of the ACM, 41(5), 52-54,
1998.
- TLisp
(a LISP Interpreter by Ron Alterovitz)
-
CPS 343/543 Scheme lecture notes
- Haskell
- ML
Logic Programming in PROLOG
- A Brief
Introduction to PROLOG by F. Pereira. ACM
SIGPLAN Notices, 28(3), 365-366, 1993.
- CPS 343/543
first-order predicate logic and
PROLOG lecture notes
- PROLOG
Tutorial (Power)
-
PROLOG Tutorial (Fisher) [ยง2.7:
Lists and Sequences]
-
Prolog Programming A First Course by P.
Brna (entire text available online in various
formats).
- Programming in Prolog by W.F. Clocksin
and C.S. Mellish. Springer-Verlag, Berlin, Fourth
edition, 1997.
- Clause and Effect: PROLOG Programming for
the Working Programmer by W.F. Clocksin.
Springer-Verlag, Berlin, 1997.
- The Art of Prolog: Advanced Programming
Techniques by L. Sterling and E. Shapiro. MIT
Press, Cambridge, MA, Second edition, 1994.
- The Craft of Prolog by R. O'Keefe. MIT
Press, Cambridge, MA, 1990.
- Prolog by Example: How to Learn, Teach, and
Use It by H. Coelho and J.C. Cotta.
Springer-Verlag, Berlin, 1988 (contains examples of
various PROLOG applications).
- Prolog for Programmers by F. Kluzniak
and S. Szpakowicz. Academic Press, London,
1985.
- Building Expert Systems in Prolog by D.
Merritt. Springer-Verlag, New York, 1989 (contains
examples of the various details of expert systems
in PROLOG).
- The
Reasoned Schemer by D.P. Friedman, W.E.
Byrd, and O. Kiselyov. MIT Press, Cambridge, MA,
2005.
- Godel,
Escher, Bach: an Eternal Golden Braid by
D.S. Hofstadter, Basic Books, New York, NY,
1979.
-
SWI-PROLOGSWI-PROLOG is a free
implementation of PROLOG.
Using SWI-PROLOG in the CPS Labs (Anderson
131/135)
In Windows, SWI-PROLOG is available on the start
menu at Start -> Programs -> SWI-Prolog
-> Prolog.
You can exit the SWI-PROLOG interpreter by
entering the EOF character on your system
(crtl-d on UNIX and crtl-z on
Windows) or entering halt. at the
prompt.
Installing SWI-PROLOG @ homeSWI-PROLOG
is freely available for a variety of operating
systems (UNIX, MacOS X, and Windows) from the
SWI-PROLOG
webpage.
DocumentationSWI-PROLOG
5.2.9 Reference Manual
Object-oriented Programming in Smalltalk
- A Brief
Introduction to Smalltalk by T. Budd. ACM
SIGPLAN Notices, 28(3), 367-368, 1993.
-
John Maloney's BankAccount class Squeak
tutorial
-
Introduction to Smalltalk through Squeak
- Squeak
Swiki
-
CPS 343/543 Smalltalk lecture notes
-
Squeak Smalltalk Class Hierarchy and API
documentation
-
Opening and Saving files in Squeak
-
Fun with the Morphic Graphics System
- A
Conversation with Alan Kay in ACM Queue,
2(9), 20-30, 2004-05 (also available
here).
- Why
Smalltalk?
- Squeak: A Quick Trip to ObjectLand by G.
Korienek, T. Wrensch, and D. Dechow.
Addison-Wesley, Boston, MA, 2002.
- On To Smalltalk by P.H. Winston.
Addison-Wesley, Reading, MA, 1998.
- Squeak: Open Personal Computing and
Multimedia by M. Guzdial and K. Rose. Prentice
Hall, Upper Saddle River, NJ, 2002.
- Squeak: Object-oriented Design with
Multimedia Applications by M. Guzdial. Prentice
Hall, Upper Saddle River, 2001.
- An Introduction to Object-oriented
Programming and Smalltalk by L.J. Pinson and
R.S. Wiener. Addison-Wesley, Reading, MA,
1988.
- A
Little Java: A Few Patterns by M. Felleisen
and D.P. Friedman. MIT Press, Cambridge, MA,
1998.
- Object-Oriented Programming in COMMON LISP:
A Programmer's Guide to CLOS by S.E. Keene.
Addison-Wesley, Boston, MA, 1989.
-
Using Squeak in the CPS Labs (Anderson
131/135)
on Windows
- Create a directory, e.g.,
mysqueak, somewhere in your
account.
- Copy the file
Squeak3.7-current-win-full.zip from
the cps343 folder on the CPS share
(S:\) drive (i.e.,
cpsshare.cps.udayton.edu) to the
directory created in step 1.
- Extract the archive in the directory
created in step 1..
- To start Squeak, double-click the
Squeak.exe icon.
- You may only re-start Squeak from the
directory created in step 1 above (but, there
is no need to repeat steps 2 and 3).
Installing Squeak @ homeSqueak is freely
available for download from the Squeak download
page.
Squeak
Documentation and Tutorials
Multi-paradigmed Languages
-
Ruby
- imperative
- functional (interpreted, dynamically typed,
supports first-class and higher-order functions
and first-class continuations, closures, and
anonymous functions)
- object-oriented (in the spirit of Smalltalk
in that it uses a uniform OO model and supports
reflection)
``If you like Perl, you will like Ruby and be
right at home with its syntax. If you like
Smalltalk, you will like Ruby and be right at
home with its semantics. If you like Python, you
may or may not be put off by the huge difference
in design philosophy between Python and
Ruby/Perl'' [ref].
-
Python
- imperative
- functional (supports higher-order and
anonymous functions, list comprehensions)
- object-oriented (dynmamic type system and
supports reflection)
-
Perl
- imperative
- object-oriented (supports reflection)
- supports dynamic scoping as an option
-
Tcl/Tk
- uses dynamic scoping
- supports reflection
- R scripting language
- open source scripting language intended for
statistical computations
- based on the proprietary S statistical
programming language
- support first-class and higher-order
functions
- uses call-by-need
- CLOS (COMMON LISP Object System):
object-oriented functional programming
- Scheme tends to be multi-paradigmed as well.
C++ is also multi-paradigmed.
Programming Languages Courses on the WWW
- Jen's Palsberg's
course at UCLA
- T.K. Prasad's
course at Wright State
- More courses at
the [EOPL] webpage
|