# CSCI 56500 - Programming Languages

- Page: https://shared.btbytes.com/p/csci56500
- Date: 2018-02-20

Stuff related to
[CSCI 56500](http://www.cs.iupui.edu/~rraje/html/56500.html). I'm
taking this course during Fall 2011 semester at
[IUPUI](http://cs.iupui.edu), taught by
[Prof. Rajeev Raje](http://cs.iupui.edu/~rraje/).

Text book: Advanced Programming Languages Design by Raphael
Finkel. This book is
[available online](http://www.nondot.org/sabre/Mirrored/AdvProgLangDesign/).

Introduction
============

Recommended Reading
-------------------

-   [EWD 215: A Case against the GO TO
    Statement.](http://www.cs.utexas.edu/users/EWD/transcriptions/EWD02xx/EWD215.html)
-   [EWD 418: Guarded commands. non-determinacy and a calculus for the
    derivation of
    programs.](http://www.cs.utexas.edu/users/EWD/transcriptions/EWD04xx/EWD418.html)

Control Structures
==================

-   [Coroutine](http://en.wikipedia.org/wiki/Coroutine) -- Wikipedia
-   [Coroutines](http://www.lua.org/pil/9.html) -- Prog. in Lua

Semantics
=========

-   [An Axiomatic Semantics of Concurrent Programming
    Languages](http://research.microsoft.com/en-us/um/people/lamport/pubs/pubs.html#semantics)
    -- see pg.3

Recommended Reading
-------------------

-   [Barbara Liskov's substitution
    principle](http://dl.acm.org/citation.cfm?id=62141).
    [PS](http://reports-archive.adm.cs.cmu.edu/anon/1999/CMU-CS-99-156.ps),[Wikipedia](http://en.wikipedia.org/wiki/Liskov_substitution_principle),
    [Explanation using
    C++](http://www.objectmentor.com/resources/articles/lsp.pdf), [using
    Java](http://www.oodesign.com/liskov-s-substitution-principle.html),
    [Discussion on
    StackOverflow.com](http://stackoverflow.com/questions/56860/what-is-the-liskov-substitution-principle).
-   [Exception Handling: Issues and a proposed
    notation](http://www.cs.virginia.edu/~weimer/2011-6610/reading/goodenough-exceptions.pdf)(PDF!)

Reference books
===============

-   Introduction to Theory of Programming Languages -- [Bertrand
    Meyer](http://en.wikipedia.org/wiki/Bertrand_Meyer).
-   The Study of Programming Languages. -- [Ryan
    Stansifer](http://cs.fit.edu/~ryan/). [Lecture notes from PL
    Concepts (UG?)](http://cs.fit.edu/~ryan/cse4250/)
-   The Anatomy of Progamming Languages
    --[Fischer](http://web.archive.org/web/20050210104745/http://eliza.newhaven.edu/cs/af/afindex.htm) and
    [Grodzinsky](http://web.archive.org/web/20041211023056/http://faculty.sacredheart.edu/grodzinskyf/).
    [Amazon](http://www.amazon.com/gp/product/0130351555/) \$0.01
-   Concepts of Programming Languages
    --[Sebesta](http://cs.uccs.edu/~rws/).[Amazon](http://www.amazon.com/Concepts-Programming-Languages-Robert-Sebesta/dp/0136073476/).
    [Lecture notes from the
    author](http://www.cc.gatech.edu/classes/cs3411b_99_winter/TextNotes.html).
-   Programming Languages: Concepts and Constructs -- [Ravi
    Sethi](http://cm.bell-labs.com/who/ravi/)
-   Foundations of Programming Langauges -- Roosta.

Related Courses
===============

[Prof Weimer](http://www.cs.virginia.edu/~weimer/) of Virginia
university is teaching [CS 6610 - Design And Analysis Of Programming
Languages](http://www.cs.virginia.edu/~weimer/2011-6610/) in Fall 2011,
which is quite interesting for a student of CSCI 56500.

Notes
=====

-   [Call/cc -- Call with Current
    Continuation](http://en.wikipedia.org/wiki/Call-with-current-continuation).

Interesting links
=================

-   It appears
    [Lua](http://steved-imaginaryreal.blogspot.com/2011/09/comparing-go-with-lua.html)
    gets the multiple return idea from Prof. Liskov's CLU language,
    which we studied in Chapter 2.

Open Questions
==============

- Do langauges that have S-expressions make it easy to implement  continuations?
