5 ms·
Enchilada Programming Language
- jcw 17y agoHaving the REPL in a frame as soon as you go to the site is very clever.
- mbreese 17y agoOkay, so I was lost when I read this feature in the RATIONALE section: Green Computing: mutating lesser bits generates lesser heat. This is just silly.
- iamwil 17y agoThat's under the assertion that moving instructions through the processor is the main source of heat generation in computers. Is this not the case?
- gthank 17y agoThe idle draw of the processor was already a major source of power consumption when I went through undergrad VLSI 5 years ago. It was my understanding that it might not be more than 50% in actual production processors, but only because they were already using lots of tricks as compared to a naive design.
- deleted 17y ago[deleted]
- zitterbewegung 17y agoActually not that silly. If you delete information in a given system you actually make it so that the system generates heat it is a proven principle. But at that high of a level you could implement any language but simply have the gates reversible. http://en.wikipedia.org/wiki/Reversible_computing http://en.wikipedia.org/wiki/Reversible_computing
- gchpaco 17y agoThat is not actually the case. It turns out there is a fundamental physical limitation on destructive computation; any irreversible operation must produce a small amount of heat. Wikipedia has more at http://en.wikipedia.org/wiki/Reversible_computing http://en.wikipedia.org/wiki/Reversible_computing and the current state of the art last I looked at it (probably in 2003/2004) was that there were a handful of very experimental processor architectures that do this; the one I looked at the most was Vieri's Pendulum. Programming in a reversible fashion is very strange; in his PhD thesis, Vieri's demonstration Fibonacci program turns out to be incomplete and I had to debug and fix it, and it was one of the stranger paradigm shifts I've experienced.
- lonestar 17y agoThe section on "verifiable computation" is interesting: http://www.enchiladacode.nl/technology.html#verifyable http://www.enchiladacode.nl/technology.html#verifyable "Every ID of an Enchilada Value is calculated by taking the SHA1 hash of the Value's contents." The docs suggest that this can be used in a consensus protocol. Many nodes can compute the same result, and quickly test for equality by comparing the ID. Seems nice to have this built-in to the language, but I have to wonder: a) Why SHA1? Why not a member of the SHA2 family? b) If you're creating a distributed system and want to implement a consensus protocol, a hash ID isn't really sufficient. Who is going to end up using this feature?
- andrewcooke 17y agocan you expand on why hash isn't sufficient for consensus? (i am just curious - i know nothing about this, but it seems like as long as the hash space is large enough that there are no collisions in the age of the universe etc etc..)
- lonestar 17y agoThe hash could be used as the response in a consensus protocol, but it looks like Enchilada leaves building that protocol up to the developer. So like I said, it's nice to have that hash for every reference, but I wonder if it's worth the storage overhead, and if a developer will use it when he's building his own distributed system anyway.
- andrewcooke 17y agoah, ok, thanks. for "simple" values they wouldn't need to actually store the hash. instead they could use, for example, the actual value of an int, byte, float etc, xored with a type-specific base (but it wouldn't be that great as a hash in, say, a hash table - better to use some function that preserves uniqueness but disperses related values). that would mean they only need to store large hashes for composite structures. edit: i am making life too complicated. in short, if it can be calculated quickly, it doesn't have to be stored.