compiler construction - How to stream program code? -


i've been learning lisp (scheme, racket , clojure various extents) , have read corresponding literature on famous playstation developer naughty dog.

this gamasutra article mentions streaming engine streams in game code in addition game data. now, have dialect of lisp called goal use extensively. know of lisp's "code data", although have yet grok concept fully. so, wondering if ability stream code property of code being lisp data or compiled machine code, opposed being generic design pattern can used in many languages?

can point me literature on topic?

bonus: can point me literature on long-term-listening-compilers mentioned in wikipedia article?

a 'listener' in lisp speak repl (read eval print loop). listeners provide several services integrated debugger, command histories, command interpreters, , more. in many cases listener runs inside lisp 1 using. in cases code typed repl/listener compiled before executing (examples clozure cl, sbcl). if not case, code can compiled on demand (see compile or compile-file functions in common lisp).

here guess development environment implemented in allegro common lisp , runtime runs on playstation. development environment provides interface talk runtime , allows compile code , download runtime. guess compiler not run on playstation, inside development environment. listener provides functionality @ state of running application on playstation, including symbol table. so, 1 connects development environment playstation's running application , 1 can interact that, including changing data , code.

since lisps typical can load both source , compiled code @ runtime, 'streaming' code not difficult. means 1 loads code (possibly in background) while player moves around in game. if code organized in way, can garbage collected once no longer needed. example if 'room' in game object , room points various functions name, functions can autoloaded on demand if player in room. if player leaves room code can automatically or semi-automatically unloaded. in typical lisp garbage collector collect unreferenced code. in game might not task of gc, of other more 'manual' process. functionality of goal runtime. compare stock jvm not garbage collect unloaded code (afaik).


Comments

Popular posts from this blog

asp.net - repeatedly call AddImageUrl(url) to assemble pdf document -

java - Android recognize cell phone with keyboard or not? -

iphone - How would you achieve a LED Scrolling effect? -