814 reputation
524
bio website
location
age
visits member for 2 years, 5 months
seen Sep 18 at 19:00

I'm the author of a natural language programming tool called EngScript, which automatically translates English sentences into Python source code.

For reference, I've posted a link to questions with tags that I'm interested in.

I have written some useful macros in sweet.js:

//for repeating if statements
macro ifs{
    rule{
        {$($x {$y...}) ...}
    } => {

        $(if($x){
            $y...
        }) ...
    }
}

//a concise way to define several different functions
macro manyFuncs{
    rule{{$($x ($y...) {$z...}) ...}
    } => {
        $(function $x($y...){
            $z...
        }) ...
    }
}

ifs {
    a{
        b
    }
    c{
        d
    }
}

manyFuncs{
    fullName(firstName, lastName) {
        return firstName + lastName;
    }
    squared(a){
        return a*a;
    }
}

Right now, I'm searching for a parser that can handle ambiguous grammars.

In theory, it would also be possible to create a very concise programming language with implicitly defined parameters:

isDivisibleBy: (foo % bar) == 0
//This is a function with 2 parameters: foo and bar.

isEven: isDivisibleBy(foo, 2)

isOdd: !isEven(param1)

firstCharacter: theString[0]

lastCharacter: theString[theString.length - 1]

firstNCharacters: theString[0:end]

firstCharacterIsLastCharacter: firstCharacter(stringParameter) == lastCharacter(stringParameter)

printEach: for current in anArray{ print current }

http://rosettacode.org/ is one of the most comprehensive programming language references I've ever found.

Optionally-typed programming languages are really awesome: they combine the type safety of languages like Java with the conciseness of languages like Python.

Some cool things that I've made:

Someday, I hope it will be possible to create a programming language that mixes code from different languages into a single file, like this:

Python {
    def foo():
        return "foo"
}
Ruby {
    def bar
        return foo + " was called from Python."
    end
}

814 Reputation

-2 Oct 13
5 Oct 3
5 Sep 17
7 Sep 16
5 May 15
5 May 7
5 Apr 9
5 Apr 4
5 Apr 1
5 Mar 31
5 Feb 18
5 Jan 7
5 Dec 25 '13
10 Dec 24 '13
5 Dec 19 '13
5 Dec 3 '13
5 Dec 2 '13
5 Dec 1 '13
-5 Nov 10 '13
5 Oct 22 '13
15 Sep 19 '13
5 Sep 1 '13
10 Aug 19 '13
5 Jul 25 '13
5 Jul 18 '13
5 Jun 12 '13
5 May 22 '13
-2 May 17 '13
2 May 5 '13
5 Apr 25 '13