reesjones / plm18

programming languages and modeling, NCSU 2018

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

home | copyright ©2018, tim@menzies.us

syllabus | src | submit | chat


Home

The premise of this subject is that computer programming languages should adapt to the ways of people, and not the other way around. Why? well...

  • Sapir-Whorf hypothesis: The structure of a language affects its speakers' world view or cognition.
  • Given the right language, problem solving becomes easier Hofstadter, 1980, p286
    • Experts don't think deeper than novices; rather, they just don't waste as much time on bad ideas.
    • The right language is like a feature extractors act like a "filter": e.g. in chess, an expert literally does not see bad moves;
    • Massive implicit pruning of the search space Larkin, et.al. 1980

So this subject explores how to write a "good" programming language.

Lectures Project Review Misc
Introduction:
Hello!, Style,
Python (intro):
Lopes' prologue, 3, 4, 5,6, 8, 9, 10, 16, 19, classes, iterators,
Parsing (basics):
Translation, Regx, Precedence, Grammers, macros
Metaphors:
States, Tubs
Lopes' styles:
spreadsheet, map-reduce, RESTful,...
Paradigms:
make, lambdaCalculus, Lisp, smalltalk, Prolog, Unix, Virtual
Fowler's DSL idioms:
BNF, closure, decision table, dependency network, state machine, production rules....

Python:
Yoda
Magic
Intro


Fun:
Erlang

Lisp (ish):
Roots.lisp
Ultimate

Misc:
Liskov
Smalltalk
Languages2
Languages1

About

programming languages and modeling, NCSU 2018

License:Other


Languages

Language:CSS 67.6%Language:HTML 21.0%Language:JavaScript 10.9%Language:Prolog 0.2%Language:Common Lisp 0.1%Language:Makefile 0.1%Language:Awk 0.0%Language:Python 0.0%