CSC301 Homepage

Fundamentals of Programming Languages

Fall 2018

Instructor:

Dr. Lutz Hamel
Tyler Hall 251
Office hours: Monday/Wednesday 11-noon Tyler 251
Email: lutzhamel@uri.edu

TA:

Christian Kostka
Office hours: Monday/Friday 3:30-4:30
Tyler Rm 134
Email: ckostka@uri.edu
Tel: 401-603-8392

Description:

Language enables thought. In this course we study a class of formal languages known as programming languages. Similar to natural languages, these formal languages enable us to to reason about algorithms and procedures to solve computational problems on computers. However, their formal nature restricts the kind of meanings particular language constructs can assume and therefore makes them amenable for the execution on a computer.

Over the years many different programming language dialects have evolved to address particular technical issues, e.g. object-oriented languages, real-time languages, database query languages, logic languages, etc. Here we study the major structures of modern programming languages. Understanding not only the syntax of a language but also the semantics and implementation techniques of this language will allow you to design better programs. Having deeper insights into the design of a programming language will also enable you to learn new programming languages much faster. Having a thorough understanding of today's languages allows you to design the programming languages of tomorrow.

Objective

Upon completion of this course

Documents of Interest:



Exercises:

NOTE: ignore Sakai deadlines on the exercise sheets!