Skip to content

jless97/UCLA-W19-CS131-Programming-Languages

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

CS131 - Programming Languages, Winter 2019

Course Objective

Expose the student to an analytic and comparative way of looking at programming languages and their implementation.

Course Description

Basic concepts in design and use of programming languages, including abstraction, modularity, control mechanisms, types, declarations, syntax, and semantics. Study of several different language paradigms, including functional, object-oriented, and logic programming.

Languages Covered

  • OCaml
  • Java
  • Prolog
  • Scheme
  • Python
  • Kotlin

Assignment Overviews

  • H1 (OCaml) - Fixpoints and grammar filters
    • OCaml warmup -- writing simple functions on sets (e.g. subset, union, intersection, etc.)
  • H2 (OCaml) - Naive parsing of context-free grammars
    • Simple parser generator of a context-free grammar
  • H3 (Java) - Java shared memory performance races
    • Deep dive into multi-threading and synchronization issues in Java
  • H4 (Prolog) - Towers solver
    • Solver of an arithmetical-logical puzzle known as Towers
  • H5 (Scheme) - Scheme code difference analyzer
    • Generates diff summary given two pieces of text
  • Project (Python) - Proxy herd with asyncio
    • Herd of servers that communicate amongst each other as well as a large number of clients asynchronously
  • H6 (Kotlin) - Language bindings for TensorFlow
    • Comparison of Java, OCaml, and Kotlin in terms of programming flexibility, generality, performance, and reliability

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published