Skip to content

Notes and code documenting a study of programming languages (Clojure, Go, Haskell, Rust)

License

Unlicense, CC-BY-4.0 licenses found

Licenses found

Unlicense
LICENSE_CODE
CC-BY-4.0
LICENSE_DOCS
Notifications You must be signed in to change notification settings

kkredit/pl-study

Repository files navigation

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.

About

Notes and code documenting a study of programming languages (Clojure, Go, Haskell, Rust)

Resources

License

Unlicense, CC-BY-4.0 licenses found

Licenses found

Unlicense
LICENSE_CODE
CC-BY-4.0
LICENSE_DOCS

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published