Front Page All Articles Recent Changes Random Article

Contents

Concatenative language

  • ACL
  • Ait
  • Aocla
  • Breeze
  • Callisto
  • Cat
  • Cognate
  • colorForth
  • Concata
  • CoSy
  • Deque
  • DSSP
  • dt
  • Elymas
  • Enchilada
  • ETAC
  • F
  • Factor
  • Fiveth
  • Forth
  • Fourth
  • Freelang
  • Gershwin
  • hex
  • iNet
  • Joy
  • Joy of Postfix App
  • kcats
  • Kitten
  • lang5
  • Listack
  • LSE64
  • Lviv
  • Meow5
  • min
  • Mirth
  • mjoy
  • Mlatu
  • Ode
  • OForth
  • Om
  • Onyx
  • Plorth
  • Popr
  • Porth
  • PostScript
  • Prowl
  • Quest32
  • Quackery
  • r3
  • Raven
  • Retro
  • RPL
  • SPL
  • Staapl
  • Stabel
  • Tal
  • Titan
  • Trith
  • Uiua
  • Worst
  • xs
  • XY
  • 5th
  • 8th

Concatenative topics

  • Compilers
  • Interpreters
  • Type systems
  • Object systems
  • Quotations
  • Variables
  • Garbage collection
  • Example programs

Concatenative meta

  • People
  • Communities

Other languages

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

Meta

  • Search
  • Farkup wiki format
  • Etiquette
  • Sandbox

Factor/Users/mncharity

Mitchell N Charity

Boston

Beginning Factor, long ago PostScript, toy Forth. Et al. tantum.

Attempting to use Factor as a compiler target for an experimental language.

Idea incubator

locals, improving documentation

I don't yet have warm fuzzies that the locals documentation well describes the issues one encounters. Especially when "going against the (language) grain", doing code generation. Notes:

  • locals is "parse-time quotation CPS rewriting". It expands macros.
  • Defining locals inside of fry tends not to work, throwing an error.
  • I've been told defining words inside of locals is a bad idea. No top level lexical forms.
  • A thorough list of "you can't do locals inside of X" and "you can't do X inside of locals" would be nice.
  • Locals variables are really multi-word patterns. This is sometimes visible, as when handing a quotation containing one to unit-test. [let 3 :> x [ x ] ] is not [ 3 ] .
  • The comment has gone by that quotations with locals are slower (even when compiled? run uncompiled in vm?) than quotations without. Details needed.
  • There does not yet seem to be a word for creating lambdas after parse time. TODO. Need: enable the equivalent of a '(lambda (x) 33) list, where 33 can later be replaced with (+ x 42). Currently, one can? do parse time interpolation, but that's still parse time. Strawman: SYMBOL or DEFER to make the parser happy with the local variable words, create a variable list and quotation, and hand it to a new word which mirrors the current parse-time word internals. Needs to be in compilation unit or no?

Speed profiling of large words

...

Tips for spinning up with Factor

(ed:Before it's all assimilated)

(ed:Sketch of language "grain")

Other/brainstorm

  • Missing "I wish there was a link from here to X" paths through docs.
  • "Oh, I see now. The intro paragraph would better say Y".
  • Creating a test infrastructure with a more "story telling" rubyish high-coverage feel. But, is it really needed for idiomatic Factor?
  • Listener/browser tricks
  • Encourage Slava screencast video? Exists?
  • Open bugs. Pending patches.
  • Variable arity multiple dispatch.
  • nano-count non-monotonicity errors, avoidance of
  • err, bit overdue for a "what is the purpose of this page" vision/mission statement
  • ...

Uncommitted code

Draft words:

  • (missing ref variant(s))
  • (ed:what else?)

Draft vocabs:

  • ...

Words of unclear general interest:

  • A DEFER: variant whose error mentions the word deferred. For nicer errors when run from commandline.
  • A kludged perl dprofpp performance profile dumper.
  • ...

(ed:Would a long laundry list here really be useful? Inline code? github mncharity-misc-factor?)

Other

  • On naming your new programming language or software project - a word, or name phrase, which is unique, allows users to search for it plus "any description of what they are wondering about", and get a good search. With results from mailing lists, blogs, tweets or whatever. Using words from languages with low web presence (eg, Ubuntu), or mutant spelling (eg, Clojure and Clozure), or, riskier, unusual phrases (eg, Pure Data), are some approaches. In contrast, a name which is a real word depends upon the rest of the search phrase to establish an "I mean the software" context. Search quality is lower, and requires users craft contextualizing queries. A word which is already related to software prevents even this contextualization, and should be avoided.

Comments

  • ... feel free ...

This revision created on Sat, 28 Aug 2010 18:24:12 by mncharity (tweak "locals, improving documentation")

Latest Revisions Edit

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