Monash U. >
School of Computer Science & Software Engineering >
CSE3322 >
2005 > Introductory information
CSE3322 Programming Languages & Implementation
Semester 2, 2005,
Introductory information
 Just a few languages.
|
Welcome
to CSE3322 Programming Languages and Implementation. The following guidelines are
given so that you can have a productive semester and so that you can complete
CSE3322 successfully.
Subject Structure
In this subject we will:
Overview the programming language landscape and
the four major language paradigms
--procedural, object-oriented, functional and logic--
and examine functional programming in detail;
Discuss implementation of programming languages
and compiler-generation
tools, such as flex and bison, which facilitate this process.
The lectures will cover the following information:
- Overview and motivation for unit; Brief history of programming languages (1 lecture)
- The functional programming language, ML (9 lectures)
- Introduction to ML; Arithmetic and Boolean types; Functions
- Characters and strings; Built-in coercion functions; Lists
- Tuples; Pattern-matching
- Matches; Simple Output; Exceptions; Polymorphism
- Type definitions; Datatype definitions
- Higher-order functions; Currying
- Records; Structures; Signatures; Functors; Abstract types
- Built-in libraries; Input/Output; Destructive update of value bindings;
Review the functional programming paradigm.
- Review of ML: Homework answers and assignments
- Programming language concepts and issues (4 lectures);
- Variables: Lifetime; Garbage Collection; Binding mechanisms; Scope
- Types and type systems: Subtypes; Kinds of Polymorphism; Coercion; Checking
and Inference
- Abstraction mechanisms: Procedural abstraction including parameter passing
mechanisms; Abstract data types; Modules; Objects
- Main programming paradigms: Imperative,
Object-oriented; Functional; Logic; Possible new
paradigms--DNA computing.
- Implementation of programming languages (10 lectures).
- Overview of programming language implementation: Interpretation vs
compilation; Main phases in a compiler; Virtual/abstract machines.
- Lexical analysis: Regular expressions; Converting NFA to DFA; DFA minimisation;
Lexer tools.
- Syntax analysis I: Context-free grammars; Top down vs bottom up
parsing; Recursive descent
parsing; Left-recursion removal and left-factoring
- Syntax analysis II: Table-driven predictive parsing; First and
Follow sets; Construction of table; LL(1) grammars
- Syntax analysis III: Table-driven bottom-up parsing; LR parsing.
- Syntax analysis IV: Construction of SLR parsing table;
Parser generators.
- Syntax analysis V: Generic bottom-up parsing--The CKY algorithm;
Chomsky Normal Form (CNF); Conversion into CNF; Assignment
- Semantic analysis I: Attribute grammars
- Semantic analysis II: Type inference; Common program optimisations
- Code generation: Run-time system; Intermediate code; Abstract
machine; Code selection Register allocation; Compilation of object-oriented languages.
In addition there will be two revision lectures.
Plagiarism
It is important that your solutions to the assignment
questions be your own work. It is perfectly acceptable to seek
help and advice when completing the assignments, but this must
not be taken to the point where what is submitted is in part
someone else's work.
Please note that, since the assignments are used in assessing
your final grade in this subject, the following Faculty policy applies.
"Students should note that cheating is regarded as a very
serious offence which is likely to lead not only to failure
in the subject concerned but also to additional penalties
including exclusion. Students should carefully note that
the taking of any unauthorised material into examinations
such as notes and unauthorised dictionaries will be regarded
as cheating. Students should also note that essays,
assignments and other work are generally understood to be
the student's own work and where such work is identical
with, or similar to, another student's work, an assumption
of cheating may arise. Where students wish to undertake work
in conjunction with other students, it is suggested that the
matter be discussed with the lecturer concerned."
Faculty of Computing and Information Technology Handbook
Please consult
www.csse.monash.edu.au/subjects/assign_submit.html
for the Infotech Academic Cheating Policy.
Assignment Preparation Guide
Unless otherwise advised your assignment marks for CSE3322 are to be
listed on the 3rd year notice board next to your student ID. Of course
your name will not be on the list, only your ID and assignment mark. If you do not wish your
mark and student ID to appear on this list please contact the general
office by Tuesday 9th of August 2005 to make alternative
arrangements.
Programs required by an assignment must work according to
the given specifications, and must be commented in a clear and thorough
way.
If possible you should get your assignment marked by the
tutor in one of the
optional tutorial classes for CSE3322.
If you cannot attend a tutorial, then you should submit your
assignment electronically using /cs/cc/bin/submit.
Furthermore, your submission must include the following declaration at the top of
submitted file.
(* MONASH UNIVERSITY, School of Computer Science and Software Engineering
Student Declaration for CSE3322 Submission
I #YOUR NAME#, ID: #YOUR ID NUMBER# declare that this submission is
my own work and has not been copied from any other source without attribution.
I acknowledge that severe penalties exist for any copying of code without
attribution, including a mark of 0 for this assessment.
*)
If either of these requirements is not satisfied, your assignment will not be marked
and you will receive 0 for the
assignment.
[ Top |
Home ]
Last Updated: Monday, 07-Nov-2005 12:43:50 EST
www.csse.monash.edu.au/courseware/cse3322/2005/intro.shtml,
fetched Tuesday, 24-Nov-2009 20:15:20 GMT