Skip to content

Instantly share code, notes, and snippets.

View bikallem's full-sized avatar
🎯
Focusing

Bikal Lem bikallem

🎯
Focusing
View GitHub Profile
@bikallem
bikallem / pcode.c
Created November 7, 2019 10:33 — forked from lpsantil/pcode.c
pcode interpreter
/*
P-code for PL/0 machine
[ref] https://en.wikipedia.org/wiki/P-code_machine
[ref] http://blackmesatech.com/2011/12/pl0/pl0.xhtml
The PL/0 virtual machine was originally specified by Nicklaus Wirth in his book
Algorithms + Data Structures = Programs; it's used as the target machine for a
PL/0 compiler.
@bikallem
bikallem / finalTagless.ml
Created October 25, 2019 09:20 — forked from lambdahands/finalTagless.ml
Final Tagless in OCaml
(*
* An OCaml implementation of final tagless, inspired from this article by Oleksandr Manzyuk:
* https://oleksandrmanzyuk.wordpress.com/2014/06/18/from-object-algebras-to-finally-tagless-interpreters-2/
*)
module FinalTagless = struct
type eval = { eval : int }
type view = { view : string }
module type ExpT = sig
@bikallem
bikallem / avl.ml
Created March 16, 2018 03:11 — forked from jj-issuu/avl.ml
OCaml AVL tree
module AVL = struct
type height = int
type int = height
module Elt = Int32
type t = Leaf | Node of t * Elt.t * t * height
exception Impossible
let height = function