sharad + implement   74

First-class, run-time macros from meta-circular evaluators
Matt Might Course http://michaux.ca/articles/scheme-from-scratch-introduction http://matt.might.net/ First-class macros are macros that can be bound to variables, passed as arguments and returned from functions. First-class macros expand and evaluate syntax at run-time. Meta-circular evaluators support a concise implementation of first-class macros. In fact, first-class macros are easier to implement than traditional compile-time macros. A meta-circular evaluator is an interpreter which (1) can evaluate itself and (2) implements each language construct in terms of itself. This article and the attached implementation explain how to implement first-class macros in a meta-circular evaluator.
asm  nasm  as  self-modifying  selfmodifying  smc  implement  implementation  lisp  scheme  compiler  c  machine  code  binary  declarative  imperative  sbcl  defcode  masm  assembly  clisp  assembler  matt  might  course  Delicious 
july 2010 by sharad

related tags

ai  aima  algorithm  algorithms  allegro  allegrograph  articles  as  asm  assembler  assembly  at-rule  automata  bash  bc  binary  blockchain  blog  blogs  book  books  bootstrap  botstrapping  btc  buy  c  calculus  call  call/cc  callcc  car  cc  cdr  cl  cl-xml  clisp  closure  code  color  combinator  comment  common-lisp  compiler  compilers  compiling  computer  Concurrent  console  consultant  continuation  continuations  Continued  conts  course  courses  cps  crypt  crypto  cs  css  custom  customization  customize  declarative  defcode  Delicious  descp  design  dev  developing  development  dna  drscheme  DSSSL  duplicate  duplication  ebook  elisp  emacs  env  erlang  error  essay  essays  eth  excellent  firefox  fundamental  gambit  geek  good  google  great  greate  ground  gsxml  hacks  history  howto  htdp  hyperspace  hyperspec  imperative  implement  implementation  info  inro  inspiration  interpretation  interpreter  irregular  irregularity  jit  kernel  kr  lambda  lambdapaper  lang  language  languages  learning  less  linux  lisp  logic  lot  lounge  lsip  machine  macro  man  masm  match  matt  might  mining  mistake  ml  monad  monads  mozilla  mustsee  nasm  netscape  norvig  ocaml  org  orgmode  paip  paper  parse  parser  parsing  pdf  pdp  pdp8  pdp11  people  person  peter  peternorvig  plan  planner  ppai  problem  program  programming  prolog  python  rdf  readit  readlater  reference  remember  remind  reminder  research  reson  resoning  ror  ruby  rules  sapna  sbcl  scala  schedular  scheme  science  scratch  scrate  search  sec  sece  self-modifying  selfmodifying  semantic  setup  sheet  shell  sicp  site/document  ski  skin  skinning  slime  smc  software  Squeak  ssl  stag  staging  start  structure  style  stylesheet  swank  sxml  syntax  t  t3  tc  technology  termcap  text  theme  tip  tips  tls  todo  tools  toread  tprj  tproject  Transformational  TransformationalCompiler  tutorial  type  unix  url  very  web  webdesign  writing  x86  xebra  xml  xsl  xslt  Xuriella  Y  Ycombinator  zile 

Copy this bookmark:



description:


tags: