Bubbles_glow

≡ Literary Systems ≡

 
Corner_fold
  • Citation
  • Extension
  • Response
  • Comment
Hopo_catalog
 
Flowchart_grey_24

Sidetrack: Bootstrapping

One challenge that traditional literature faces that formal languages do not is that literary forms in novels are necessarily bootstrapped into existence. With a programming language, it's always possible to define your literary form in terms of primitive elements of a lower level. In a book, you can't go much lower than your language — instead of a vertical progression of literary forms, you have a horizontal spread. Idioms and patterns are borrowed from other systems, other subcultures, or other languages, not so much composed out of the building blocks of this one. An author uses the forms available to compose forms which mix back in at the same level, instead of being read all alone on a new plane.

Recently, there has been a resurgence in interest about bootstrapping programming languages in the same sort of way. The idea is to define a small, core kernel of a language, and then use that to define the rest of the necessary forms, so that the majority of the language is written in terms of itself. The first language to be implemented self-reflexively like this was Paul McCarthy's Lisp. Lisp was implemented with a meta-circular interpreter. Meaning that the primary representation of the language is also a data-structure in the meta-language as well. In this way, the same code can both operate on ordinary data, and also other code-as-data. There's a new implementation of the Ruby language called Rubinius, that aims to write as much Ruby as possible in Ruby itself.



 
"In the very same way, the inventor of a new world view must be able to talk nonsense until the amount of nonsense created by him and his friends is big enough to give sense to all its parts."
— Paul Feyerabend