Recording Venue: Skype
Guest(s): Ola Bini
Host(s): Markus
This is a conversation with Ola Bini on his experimental language Ioke. We cover the idea behind the Ioke experiment as well as important language concepts and the thinking behind them.
Recording Venue: Skype
Guest(s): Ola Bini
Host(s): Markus
This is a conversation with Ola Bini on his experimental language Ioke. We cover the idea behind the Ioke experiment as well as important language concepts and the thinking behind them.
You must be logged in to post a comment.
Pete Warden, CEO of Useful Sensors and a founding member of the TensorFlow team at Google, discusses TinyML, the technology enabling...
Brenden Matthews, a seasoned software engineer, entrepreneur, and author of the Idiomatic Rust and Code Like a Pro in Rust books (both from...
Tanya Janca, author of Alice and Bob Learn Secure Coding, discusses secure coding and secure software development life cycle with host...
Interesting ideas on language simplicity.
By the way, the simplest in terms of the definiton you used(and came to lambda calculus) would be Iota and Jot with the universal combinator, which is one lambda calculus combinator, which can emulate SKI calculus and therefore whole lambda calculus and finally it is Turing complete.
Simple as it gets, unusable however, maybe we are looking for the golden middle path between “small” and “big” languages.
In the beginning, Ola alludes to literal overloading in Ioke, when he explains that ‘foo x = 42′ is actually 4 messages (foo, x, = and 42) and he says that he might come back to literals later in the show. Well, he didn’t, so I thought I’d mention what I consider a very cool feature of Ioke: literal overloading.
As Ola said, literals are just messages like all others in Ioke, which means that you can override them just like any other message. So, ’42’ is actually translated into the message ‘internal:createNumber(fortytwo)’ which is sent to the current ground where ‘fortytwo’ is a platform string (i.e. a ‘java.lang.String’ on ikj and a ‘System.String’ on ikc) containing the string ’42’.
So, you just define your own ‘internal:createNumber’, ‘internal:createDecimal’, ‘internal:createText’ and ‘internal:createRegexp’ and you’re good to go.
A beautiful example of the value of literal overloading is Ola’s parser combinator library.