Hacker News new | past | comments | ask | show | jobs | submit login
The Implementation of the Icon Programming Language (1986) (arizona.edu)
60 points by noch on June 18, 2018 | hide | past | favorite | 10 comments



Another book in this genre is "Smalltalk-80: the language and its implementation". "Structure and Interpretation of Computer Programs" had a lot of discussion about language implementation too.


Smalltalk-80: Bits of History, Words of Advice is one of my favorite books on language implementation. It's dated (the machines targeted were things like 8Mhz 68000 boxes) but details and pragmatics of bootstrapping your way into a working system from a tape dump are a fun read.


Especially the cartoon captioned something like "2+2=3.9erstėsdgdfg - the system is 99% working" - both funny and accurate, after a fashion :-) Too bad all we got for the MVC book was "The black art of MVC programming" :-(


"2+3=(massive system crash)"

[Examines core dump] "Hmmm, might have been okay..."

The cartoons are funny and have never gone out of style. I still refer cow-orkers to them and get laughs.


There is a successor to the Icon language called Unicon. Like Icon, its strength lies in text processing. It incorporates all of Icon's features while adding object-oriented capabilities. It's in active development but completely off the radar of the main programming scene.

The main website could do with a facelift.

https://unicon.sourceforge.io/

It's a shame these languages aren't studied more because they have some unique ideas that we could all learn from.


Icon is a great little language. The old Icon compiler used CPS and generated C w/ no C extensions.


I have this book. I read it while working on my senior project, which was adding the Actor concurrency model to Icon. A pretty easy read. The Icon language was so innovative. It was my secret weapon in college.


Fascinating language, very interesting to see the nice way that it progresses as long as it "succeeds" e.g. via Wikipedia:

"In addition, the < operator returns its second argument if it succeeds, allowing things like if a < b < c, a common type of comparison that in most languages must be written as a conjunction of two inequalities like if a < b && b < c"


What would a < b < c look like in snobol/spitbol, precursor to Icon.

Maybe something like

    lt(a,b) lt(b,c) ...
   end
where ... is optional rest of statement that only gets executed if a < b < c.

Or ... might be a statement on a new line

    lt(a,b) lt(b,c) :s(d)f(end)
   d ...
   end


This might also be of interest: http://www.vestasys.org/lim/




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

Search: