Skip to content
/ ntua-pl2 Public

Assignments for Programming Languages II course at ECE NTUA

License

Notifications You must be signed in to change notification settings

mstou/ntua-pl2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

70 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Programming Languages II, ECE NTUA

This repository contains my solutions to the Programming Languages II course assignments. A brief summary of each exercise follows.

  • vm: Implemented an indirectly threaded virtual machine for Befunge-93 (a BrainFuck like language).

  • gc: Implemented a garbage collector for an extension of Befunge-93 that also supports linked lists. We implemented the Mark & Sweep algorithm on top of the virtual machine we built for the previous exercise

  • haskell-dp: Solved an algorithmic problem using Dynamic Programming in Haskell both in a pure and an impure way.

  • quickcheck: Property based testing in Haskell using QuickCheck. We implemented a method to produce random trees and wrote some properties to test BFS, DFS and other graph algorithms.

  • type-inference: Implemented Type Inference for Lambda-Calculus with simple types, using the Algorithm W.

  • parallel-hs: Experimented with Parallelism and Concurrency in Haskell using the Par Monad and MVars

  • typesys: Defined a Type System for a simple stack machine language

  • densem: Implemented the Denotational Semantics for the stack machine language defined in the previous exercise

  • scripting: Experimented with scripting languages. We implemented a client and plays an online game and a server that hosts the game.

  • ax-sem: Experimented with Axiomatic Semantics and Program Verification. We proved the correctness of a given algorithm using the Frama-C library.

About

Assignments for Programming Languages II course at ECE NTUA

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published