Skip to content

pbougou/proglangs

Repository files navigation

Programming Languages ΙΙ

Title Description
Algorithms in Haskell Algorithmic implentations in Haskell.
Property-based testing in Haskell's QuickCheck
  • Tree data structure implementation and testing
  • Bird's tree implementation and testing
Virtual machines Using GNU C extensions and [these techniques] to eliminate branch prediction overhead (https://courses.softlab.ntua.gr/pl2/2009b/slides/vm.pdf), there are implemented interpreters for:
Garbage collector It is integrated with the interpreter for bytecode language. Algorithms and techniques used for gc:
  • Find all unreachable memory objects with mark and sweep.
  • GC is called every time a new heap allocation happens.
    Axiomatic semantics For program verification in C programming language, Frama-C is used. There are verified two algorithms' implementations:
    • Find the maximum number of same consecutive elements in an array.
    • Check if an array contains the same element twice.
      Type inference in Haskell Type inference a la Hidney-Milner for the simply-typed lambda calculus.
      Denotational semantics Implementation of denotational_semantics for two small languages in Haskell:
      Scripting Languages Implementation of websites, which host a game, with PHP and client-side scripting with Python for playing and winning the game.