Front Page All Articles Recent Changes Random Article

Contents

Concatenative language

  • ACL
  • Ait
  • Aocla
  • Breeze
  • Cat
  • Cognate
  • colorForth
  • CoSy
  • Deque
  • Elymas
  • Enchilada
  • ETAC
  • F
  • Factor
  • Forth
  • Freelang
  • Gershwin
  • Joy
  • Kitten
  • lang5
  • Lviv
  • min
  • mjoy
  • Mlatu
  • Ode
  • Om
  • Onyx
  • Plorth
  • Popr
  • Porth
  • PostScript
  • Quackery
  • r3
  • Raven
  • Retro
  • Staapl
  • Stabel
  • Trith
  • Worst
  • xs
  • XY
  • 5th
  • 8th

Other languages

  • APL
  • C++
  • Erlang
  • FP trivia
  • Haskell
  • Io
  • Java
  • JavaScript
  • Lisp
  • ML
  • Oberon
  • RPL
  • Self
  • Slate
  • Smalltalk

Computer Science

  • Type systems
  • Language paradigms
  • Compilers
  • Interpreters
  • Garbage collection

Meta

  • Search
  • Farkup wiki format
  • People
  • Etiquette
  • Sandbox

Implemenation Ideas

Vocab loader

The vocabulary system has a problem where some vocabulary names are restricted but no error is thrown. For example, a vocabulary foo.private with the on-disk path of extra/foo/private/private.factor will never get loaded because the loader will want to load extra/foo/foo.factor instead. A possible fix is for foo.private to become foo:private and to make a first-class use object like TUPLE: use vocab subvocab ;. The use word would split on the : and the vocab would be everything to the left of the :, while the right part is the subvocab. While the only subvocab is private right now, we could have a primtives subvocab as well for core bootstrap. Then the kernel using list would look like: USING: kernel:primitives slots:primitives math:primitives ;. The vocabulary loader would decide whether to load vocabularies based on the subvocab.

Examples:

  • USE: math:private -> core/math/math.factor:private
  • USE: math:primitives -> core/math/math.factor:primitives
  • USE: math.private:private -> core/math/private/private.factor:private

This revision created on Tue, 27 Sep 2011 03:22:45 by erg

Latest Revisions Edit

All content is © 2008-2023 by its respective authors. By adding content to this wiki, you agree to release it under the BSD license.