SYSC 3101 Programming Languages
Principles underlying different kinds of programming languages
(procedural, functional, logic programming) and their semantics.
Overview of machinery needed for language support (compilers,
interpreters and run-time systems).
News and Upates
Last modified: Wed Mar 4 15:13:06 EST 2009
- Wed Jan 4 13:09:20 EST 2012
- Welcome to the Winter 2012 term!
- Fri Jan 6 12:41:21 EST 2012
You can try it
at home or come to the lab on Monday in MC 6045.
- Wed Feb 8 10:37:23 EST 2012
- Tue Feb 28 11:35:23 EST 2012
- Wed Mar 14 17:40:45 EDT 2012
- Here is the link to the group presentation document. Please form groups of 5-6 people. There should be 7 groups. Choose a language for this Friday. Java is off the table. PhP, Python, Perl, Ruby, Lua are all fair game. I also suggest you look at "rails" as in Ruby on Rails.
Prerequisites
SYSC-2004 or SYSC-2100 or Permission of the Department. Students must
satisfy the prerequisites in order to remain registered in the
course. Students who have not completed the prerequisites are required
to either a) withdraw from the course, or b) obtain a prerequisite
waiver form from the registrar's office, or c) will be deregistered
from the course after the last day for course registration.
Course Materials
Assignments and Tutorials
Assignments
- Lab 0 Monday, January 12th. MC 6045
You can try it at home too!
- Assignment 1 - Programming in Scheme. Due Friday, February 10th 2012 at 12:00 noon.
- Assignment 2 - Parsing with Yacc and Lex. Due Wednesday, March 7th 2012 at 12:00 noon.
- Assignment 3 - Programming in Prolog. Due Wednesday, March 21st 2012 at 12:00 noon.
- Group presentations: last week of classes.
Tutorial Questions
- pa1. Monday, January 23rd.
- pa2. Monday, February 27th.
- pa3
- Sample exam questions.
Supplementary Lecture Notes
All students must understand that these notes are provided as an
outline of course material only! Reading only these supplementary
notes is not enough to pass the course. Regular attendance
at lectures is expected of all students, and supplemental reading of
the text with regular practice at suggested exercises is the best way
to prepare for tests and exams. You will be responsible for all
material presented in the course, not only the material
provided in these supplemental notes! All notes are in pdf format.
Tips and Tricks
- Path
- Right click "My Computer"
- Select "Properties"
- Choose "Advanced" Tab
- Click "Environment Variables"
- Click "New"
- Add Variable Name: "PATH" and Value: "C:Program Files\GnuWin32\bin"
- Yacc/Lex
- If you are getting errors about
yywrap()
,
define the following after the second %%
in
your lex input file: int yywrap() { return 1; }
- Missing language features for Dr Racket? (Linux/Unix)?
- Select "Language" from the toolbar for
DrRacket.
- Open the PLT item from the "Configure
Language" window.
- Select "Textual", "Graphical" or
"Pretty Big".
- "Close" the "Configure
Language" window.
- Execute (from the main window).
- Missing language features Dr Racket? (windows)?
- Select "Language" from the toolbar for
DrRacket.
- Select "Full Racket"
- Select "Textual" or "Graphical" with
debugging.
- Click on "OK" to close the window.
- Click on Execute (from the main window)
to make the changes take effect..
- Detest GUI's?
- Run mzracket at the command prompt. On
the lab machines, MzRacket is found in C:\Program Files\Racket\MzScheme.exe
- To run a scheme program: mzscheme -r
filename.
- SWI Prolog notes:
- The interpreter is rather sensitive to blanks lines --
don't put them into your programs!
- You can edit your program (e.g., filename.pl), then load
it into the prolog interpreter using:
?- [filename].
- Assignment submission:
Laboratory
Health and Safety Manual (PDF Format)
greg <greg.franks@sce.carleton.ca>
$Date: 2009-03-04 15:14:04 -0500 (Wed, 04 Mar 2009) $