(publishing your work): [ publishing ] and [ HTML ]
BNF was developed to describe the syntax of Algol60 and various extensions (EBNF) and variations have been used for all major programming languages since then. In CS320 we will use a special extension that is designed to work well with ASCII and discrete mathematics called XBNF. Here is a one page cheatsheet for XBNF: [ cs320xbnf.htm ] , for a definition see the introduction [ intro_ebnf.html ] , for the theory [ intro_grammar.html ] , and for the general form [ math.lexicon.html ] [ math.syntax.html ] , and samples [ http://www.csci.csusb.edu/dick/samples/ ] of XBNF.
I have some old notes on some key topics in the theory
of programming langauge semantics:
Introduction to Formal Semantics
[ intro.html ]
Semantics of a simple language: while
[ while.html ]
[ denotational.html ]
[ fixed.html ]
[ operational.html ]
. . . . . . . . . ( end of section Semantics) <<Contents | Index>>
HTML Quick Reference [ HTML_quick.html ] and Glossary [ comp.html.glossary.html ]
(color): Colors in HTML and Java [ Colors in comp.html.syntax ] also in general [ color.html ]
HTML Primer [ HTMLPrimer.html ] and guide to URLs [ URL_guide.html ]
Syntax of HTML [ comp.html.syntax.html ]
Notes from an HTML Workshop [ html.workshop.html ] [ rjb94c.html.html ] and HTML Tips [ tips in bugsEN ]
Pointers to yet more WWW resources [ www.html ]
. . . . . . . . . ( end of section HTML) <<Contents | Index>>
If you have problems with Rational Rose you can try a simpler and free diagramming tool. It is availabl;e on our workstations and you can download it onto your own computer (Windoze or Linux) for free. Mac users have AppleWorks already.
On our system input this command
dia&into a terminal window. It may also be in a menu from the panel at the bottom of the screen.
The Gimp is a handy tool for converting things on your screen into graphic files to put on WWW pages. On Windoze I use SnagIt for this job.
Handout [ 320wlisp.html ] , specification and points: [ lisp.html ] , and examples and source code: [ http://www.csci.csusb.edu/dick/cs320/lisp/ ]
The PROgramming in LOGic language:
[ Prolog.html ]
[ prolog.html ]
(sample documentation) and
[ mbox ]
(Selective SWI prolog mailing list archive) plus
[ http://www.csci.csusb.edu/dick/cs320/prolog/ ]
(lots of examples).
Get your own copy of SWI-Prolog: [ http://www.swi.psy.uva.nl/projects/SWI-Prolog/ ]
Java Reference Documents [ index.html ]
Java Application Programmer Interfaces [ index.html ]
Current API [ http://java.sun.com/j2se/1.4.2/docs/api/ ]
[ languages.html ]
[ http://www.csci.csusb.edu/dick/samples/ ]
[ lang.en.html ]
Random languages to hate: [ http://www.mines.edu/students/b/bolmstea/randlang/ ]
(scripting): Scripting languages: [ scripting.html ] (With thanks to Kevin Hagel).
(Ada): [ http://www.csci.csusb.edu/dick/cs320/ada/ ]
(C): [ http://www.csci.csusb.edu/dick/cs320/c/ ] and C++ [ http://www.csci.csusb.edu/dick/cs320/c++/ ]
(FORTRAN): the grandaddy of them all... We have the Gnu FORTRAN 77 compiler on tap. It is called g77 and works something like g++. FORTRAN programs must be in files that end .f. See [ ex5.f ] [ http://www.csci.csusb.edu/dick/cs320/fortran/ ] for examples and [ http://www.j3-fortran.org/ ] for the standards. Google and other searches also give interesting results.
(ML): MetaLanguage [ http://www.csci.csusb.edu/dick/cs320/ml/ ]
(Other): [ http://www.csci.csusb.edu/dick/cs320/other/ ]
(Pascal): [ http://www.csci.csusb.edu/dick/cs320/pascal/ ] [ pascal.lexicon.html ] [ pascal.syntax.html ]
(Scheme): a variety of LISP. [ http://www.csci.csusb.edu/dick/cs320/scheme/ ]
(Shell): [ http://www.csci.csusb.edu/dick/cs320/shell/ ]
(SmallTalk): [ http://www.csci.csusb.edu/dick/cs320/smalltalk/ ]
(UML): [ uml.html ]
(Unix): includes Linux [ http://www.csci.csusb.edu/dick/cs320/unix/ ]
(Z): [ http://www.csci.csusb.edu/dick/cs320/z/ ]
Language sites on the WWW
[ languages.html ]
. . . . . . . . . ( end of section CSci620 Programming Language Theory Resources) <<Contents | Index>>