Skip to content

Latest commit

 

History

History
53 lines (40 loc) · 1.51 KB

programming_languages.org

File metadata and controls

53 lines (40 loc) · 1.51 KB

Programming Languages - Brown

Shriram Krishnamurthi

Lecture One

~~~~~~~~~~~~~

Types of Languages

  • Procedural
  • Functional
  • Object oriented
  • Compiled v Intrepreted v JIT
  • Low level vs. High level
  • Markup languages
  • Declarative languages

eg - SQL

  • Scripting Languages

eg - Javascript

  • Prototype languages

Multiparadigm languages

We study the atomic units and the rules of composition of these units that make everything.

We will learn to appreciate the essence of any language - and look at it’s actual features. how are the objects of ruby different from say, java, python etc? we will be able to appreciate that if we grasp the essence of the languages

desugaring

“desugar” -> remove the syntactic sugar and get the essence. eg, AND, OR, XOR etc can all be implemented by NAND –> that is desugaring

another eg: exponentiation –> repeated multiplication multiplication –> repeated addition addition –> repeated +1 division –> repeated subtraction subtraction –> repeated -1

so, all operators —> { desugaring } –> +1, -1 (in loops)

another eg, Programming language –> { desugar } –> turing machine (or Lambda calcaus) so, we can desugar to multiple things

in this course –> we will take the language, desugar it to it’s essence, implement the essence (write an intrepreter that understands it)

feature set, syntax are different

decide on a core feature set first, once you are satisfied with it, you can add syntax you can make it indentation based, braces based etc

Lecture 2

~~~~~~~~~~~~