Hacker News new | past | comments | ask | show | jobs | submit login
Xxl – a minimal vector programming language (github.com/tlack)
7 points by keyle on March 29, 2016 | hide | past | favorite | 4 comments



Hey guys, author here.

I was holding off on posting a Show HN here until I get more documentation together, but somehow that task seems to be taking longer and longer, so I guess it is good that this has been posted.

XXL is pretty young and a bit slow and buggy yet, but I think it has some interesting ideas. I drew most of my inspiration from K/Q and Erlang and some second hand APL and J.

My goal is to allow concise expression of complex algorithms, minimize magic at the cost of some terseness and, provide a robust, composable standard API (with stuff like mailboxes, a built-in pastebin for any data/code, really easy to generate parse trees, and advanced looping verbs like recurse, exhaust, deep, and wide).

You can get a sense of the language from my non-programmer introduction here: https://github.com/tlack/xxl/blob/master/doc/groceries.xxl (Side note: This tutorial is intended to be interacted with as a kind of slide show of explanation and then REPL input, along with the corresponding results from XXL. Such tool is only a fantasy, but it should help you figure out what you're looking at here.)

Here's a mostly complete list of the verbs in the language: https://github.com/tlack/xxl/blob/master/doc/lang.xxl

The source is pretty easy to understand and of course I'd love to answer any questions.


Just found this on github, looks awesome. Please do post a Show HN when you are ready.

Love love love that this is a K/Q/erlang/APL/J inspired language that uses common English.

Have you started on the JS translation yet? I suppose it would need to allocate sparse arrays in order to keep performance reasonable? How do you see that going? I would definitely use it and might be able to help if I can find the time.


Hey there! Thanks for the kind thoughts.

I love the ideas of K/Q/Erl/APL/J but the damn specifics, syntax, and wording is just so off-putting to most people. Frustrating because English is such a diverse language, but we insist on using our cryptic invented terms. Plus of course they write the documentation and tutorials as if you are solving a riddle..

I haven't started JS yet. I had to pick and choose my battles and writing all that in C alone was hard enough.

I did build the first version of the "concept interpreter" using JS, so it would be pretty simple. I'd probably use fixed sized arrays and the rest of the asm.js stack if I did. People are looking for high performance.

The key to the interpreter is simply converting each character of the source into an item in a list, then using open ended matching primitives to convert it into the proper parse tree, by detecting matching symbols, etc.

The problem for real work w/ XXL+JS is the 1.7gb VM limit in V8, which no one seems to talk about. :)

Come visit on #kq or #xxl on Freenode IRC when you have time.


I wrote some notes about how XXL works here:

https://github.com/tlack/xxl/blob/master/doc/implementation....




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: