One more thought on the broader ideas of LISPy languages and ASM. One of the versions of Crash Bandicoot was developed in Game Oriented Assembly LISP (GOAL) - which was a common LISP DSL that generated assembler.
I recalled this today because Michael Fogus tweeted about it: https://twitter.com/fogus/status/336865798628966400 If you're a hobbyist dabbling in this space then you might find reading about it interesting and inspiring: http://en.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp http://all-things-andy-gavin.com/2011/03/12/making-crash-bandicoot-gool-part-9/ JG On Sunday, 19 May 2013 01:49:43 UTC+10, Gary Trakhman wrote: > > It's hard to really appreciate java and clojure until you actually write > some C/C++ or ASM.. I have some minor experience with that stuff, and it > still haunts me from time to time. > > Sometimes we make tradeoffs without knowing we did. By choosing a > language, or having the choice made for us, we accept a set of abstractions > as our bottom level of thinking for a problem-space. Only old-timers and > people that make a point to care about low-level stuff will notice the > implications of what they're doing along the abstraction stack. People > with ingrained habits just won't find it easy to think functionally, but > I'm young and irreverent, so it doesn't bother me :-). > > C++ is fun because of all the bolted-on kludges that 'mitigate' these > problems. You can use operator-overloading on pointer operations to > perform automatic reference counting, deallocating objects when things that > point to them go out of scope, but I think implementing a PersistentHashMap > this way would be very difficult. Also, pretty sure it can't handle cycles. > > I guess the point is, I appreciate any effort to understand such issues, > it's been a useful thing for me to know in the 0.05% of time that knowledge > is needed. > > But, people who don't know just won't be able to get past those problems. > And, you generally can't easily find a _really_ full-stack guy to glance > at it for you when it would be useful to have one. > > On Sat, May 18, 2013 at 11:24 AM, atkaaz <atk...@gmail.com > <javascript:>>wrote: > >> your comment caused me to be reading this >> http://prog21.dadgum.com/134.html >> (at least) >> >> >> On Sat, May 18, 2013 at 6:17 PM, Gary Trakhman >> <gary.t...@gmail.com<javascript:> >> > wrote: >> >>> Immutability, persistence, closures without a serious garbage collector >>> sounds hard. >>> >>> >>> On Sat, May 18, 2013 at 1:09 AM, atkaaz <atk...@gmail.com >>> <javascript:>>wrote: >>> >>>> Thanks very much everyone! I'm looking into all of those, but currently >>>> planning to read Julian's pdf. I didn't want to say anything until I had >>>> something definite, but just letting y'all know that I'm considering each >>>> recommendation. >>>> >>>> >>>> On Sat, May 18, 2013 at 7:12 AM, Julian <julian...@gmail.com<javascript:> >>>> > wrote: >>>> >>>>> If you had a hobbyist interest in representing S-expressions in >>>>> assembler - then you could take a look at the tutorial written by >>>>> Abdulaziz >>>>> Ghuloum called "Compilers: Backend to Frontend and Back to Front Again". >>>>> It >>>>> used to be available here: >>>>> http://www.cs.indiana.edu/~aghuloum/compilers-tutorial-2006-09-16.pdf >>>>> >>>>> I don't know if it available anywhere else on the internet - but I >>>>> grabbed another copy and put it here: >>>>> https://sites.google.com/site/juliangamble/Home/Compilers%20Tutorial%202006-09-16.pdf?attredirects=0&d=1 >>>>> >>>>> For a more serious representation of Clojure's persistent data >>>>> structures, I don't recommend trying to implement them in ASM. >>>>> >>>>> Cheers >>>>> Julian >>>>> >>>>> >>>>> On Friday, 17 May 2013 22:06:45 UTC+10, Alan D. Salewski wrote: >>>>> >>>>>> On Fri, May 17, 2013 at 02:10:02PM +0300, atkaaz spake thus: >>>>>> > Ok, weird question: is there some clojure port on assembler yet? >>>>>> Even >>>>>> > if(/especially if) it doesn't have jvm/java/javalibs support >>>>>> > >>>>>> > Or should I just check >>>>>> > https://github.com/clojure/**clojure-clr<https://github.com/clojure/clojure-clr>? >>>>>> > >>>>>> > >>>>>> > I'm mainly interested in low memory footprint and fast startup >>>>>> times (does >>>>>> > clojure-clr have that?) >>>>>> >>>>>> You may want to check out ClojureScript, too. ClojureScript programs >>>>>> leveraging nodejs for host interop have fast startup times: >>>>>> >>>>>> >>>>>> https://github.com/clojure/**clojurescript/wiki<https://github.com/clojure/clojurescript/wiki> >>>>>> >>>>>> >>>>>> -- >>>>>> ------------------------------**------------------------------**----- >>>>>> >>>>>> a l a n d. s a l e w s k i sale...@att.net >>>>>> 1024D/FA2C3588 EDFA 195F EDF1 0933 1002 6396 7C92 5CB3 FA2C 3588 >>>>>> ------------------------------**------------------------------**----- >>>>>> >>>>>> >>>>> -- >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "Clojure" group. >>>>> To post to this group, send email to clo...@googlegroups.com<javascript:> >>>>> Note that posts from new members are moderated - please be patient >>>>> with your first post. >>>>> To unsubscribe from this group, send email to >>>>> clojure+u...@googlegroups.com <javascript:> >>>>> For more options, visit this group at >>>>> http://groups.google.com/group/clojure?hl=en >>>>> --- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "Clojure" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to clojure+u...@googlegroups.com <javascript:>. >>>>> For more options, visit https://groups.google.com/groups/opt_out. >>>>> >>>>> >>>>> >>>> >>>> -- >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Clojure" group. >>>> To post to this group, send email to clo...@googlegroups.com<javascript:> >>>> Note that posts from new members are moderated - please be patient with >>>> your first post. >>>> To unsubscribe from this group, send email to >>>> clojure+u...@googlegroups.com <javascript:> >>>> For more options, visit this group at >>>> http://groups.google.com/group/clojure?hl=en >>>> --- >>>> You received this message because you are subscribed to the Google >>>> Groups "Clojure" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to clojure+u...@googlegroups.com <javascript:>. >>>> For more options, visit https://groups.google.com/groups/opt_out. >>>> >>>> >>>> >>> >>> -- >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Clojure" group. >>> To post to this group, send email to clo...@googlegroups.com<javascript:> >>> Note that posts from new members are moderated - please be patient with >>> your first post. >>> To unsubscribe from this group, send email to >>> clojure+u...@googlegroups.com <javascript:> >>> For more options, visit this group at >>> http://groups.google.com/group/clojure?hl=en >>> --- >>> You received this message because you are subscribed to the Google >>> Groups "Clojure" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to clojure+u...@googlegroups.com <javascript:>. >>> For more options, visit https://groups.google.com/groups/opt_out. >>> >>> >>> >> >> -- >> -- >> You received this message because you are subscribed to the Google >> Groups "Clojure" group. >> To post to this group, send email to clo...@googlegroups.com<javascript:> >> Note that posts from new members are moderated - please be patient with >> your first post. >> To unsubscribe from this group, send email to >> clojure+u...@googlegroups.com <javascript:> >> For more options, visit this group at >> http://groups.google.com/group/clojure?hl=en >> --- >> You received this message because you are subscribed to the Google Groups >> "Clojure" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to clojure+u...@googlegroups.com <javascript:>. >> For more options, visit https://groups.google.com/groups/opt_out. >> >> >> > > -- -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.