4 post(s) tagged with "design-choices"

View All Tags

Design Choice of SAMLANG in Alpha

January 12, 2019

Background

In the last summer, I developed my first programming language SAMPL. Measured against my technical skills at that time, it was a clear success. I was able to implement an interpreter and a compiler for a self-designed functional programming language with only the knowledge to implement an interpreter for a toy language in Cornell CS 3110. I was particularly proud of the module system and generics in that language.

A Year of Change - Reflection on My Website's Architecture Update

August 1, 2018

Background

I bought the domain developersam.com{:target="_blank"} in February 2015 and officially started my own website. Before that, I hosted my website on the free tk domain, but I decided to remove that kind of sketchiness when I received my first scholarship. The website is poorly maintained, received no update for almost a year since it's published. After I was admitted to Cornell in December 2016, I started to update my website more often, but still not as frequent as I would do right now. In a quite slow progress, the website finally got to an acceptable shape at the end of July last year.

Function Reference in SAMPL - A Design Mistake and the Fix

June 19, 2018

Background

In most functional programming languages, a function IS a value. Therefore, it can be easily passed as a parameter for a function. For example, this is legal in OCaml:

let f (i: int): float = float_of_int i
let test (f: 'a -> 'b) (a: 'a) : 'b = f a
let ( * ) = test f 3

Even for Javascript, this can be done easily:

function f(s) {
  return parseInt(s);
}

function test(f, a) {
  return f(a);
}

const ignoreMe = test(f, '3');

Design Choice of SAMPL - Written After the First Alpha Release

June 15, 2018

Beginning

Starting from May 21, after I finished the algo final at Cornell, I started to develop my own programming language SAMPL. I decide to design a new language for a while, because I was frustrated by the ugliness of OCaml's namespace but miss its nice functional features. The exact name of the language was not chosen with much deliberation: I just want the name to contain a substring SAM.