Giter Club home page Giter Club logo

pl-study's Introduction

Programming Languages Study

This repository contains notes and code generated as part of a study of programming language theory and practice.

This is an independent study as a part of GVSU's Computer Information Systems master's program.

Plan of Study

The goals of this study are to learn the basics of programming language theory, pick up a few new languages, and dabble with implementing a language. To that end, I will write a simple but non-trivial program in each language under study, go through Robert Nystrom's Crafting Interpreters, and produce a writeup on what I've learned.

I come from a strong background in C with familiarity with a number of languages. Languages to study in this course will include:

  • Go
  • Haskell
  • Rust
  • Clojure

The plan outlined here is aspirational. As an independent study, my goal is to set my sights high and execute as much as I can.

Completion Update

Going through Crafting Interpreters in addition to learning each of these languages proved to be too much. However, see the results of the study on the wiki page, in the contents of this repo, and in particular through the following:

Schedule

Jan 6 Jan 13 Jan 20 Jan 27 Feb 3 Feb 10 Feb 17 Feb 24
Reading GBE Hello-Switch GBE Arrays-Methods GBE Interfaces-Channels LYH 1-2 LYH 3-4 LYH 5-6 LYH 9-11 RBE Hello-Flow
Language Go Go Go Haskell Haskell Haskell Haskell Rust
Interpreter CI 1-3 CI 4 CI 5 CI 6 CI 7 CI 8 CI 9 CI 10
(cont.) Mar 2 Mar 9 Mar 16 Mar 23 Mar 30 Apr 6 Apr 13
Reading SB RBE Functions-Scoping RBE Traits-Stdlib RBE Stdmisc-Meta CBE Hello-Flow CBE Boolean-Maps CBE Sequences-Macros
Language SB Rust Rust Rust Clojure Clojure Clojure
Interpreter SB CI 11 CI 12 CI 13 Flex Flex Flex

Reading Sources

Other Reading

License

This project is dual-licensed under the Unlicense and the Creative Commons Attribution 4.0 International license. Unless otherwise specified, the Unlicense is for code, and the Creative Commons license is for documentation and the wiki.

Because I am utilizing example code from other projects, see additional license notes in each subdirectory and file.

pl-study's People

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.