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/GSoC/2010/Improve walker tool

Mentors

Slava Pestov

Summary

Factor has a debugger tool called the "walker" that allows developers to step through their code interactively. Currently, it is limited to walking through only the lowest-level representation of Factor code. Walking through code that uses language features that go through transformation passes, such as local variables and macros, is currently difficult because the user has to step through the generated output rather than through the high-level representation they wrote originally. While the high level of metaprogramming possible in Factor makes it impossible to support every potential abstraction, the walker should at least be made aware of the most common ones, such as the aforementioned macros and locals.

Walking into combinator-heavy code can be awkward with the current implementation as well. The walker allows the user to insert breakpoints into a quotation by using the "step into" operation, but the user needs to know to "continue" into the combinator that consumes the quotation. The walker could do some analysis to pair quotations with combinators and streamline the user interface for stepping through them.

The walker also allows you to step into words that depend on being compiled by the optimizing compiler (most notably, FFI calls). By its nature, the walker steps through words using the non-optimizing compiler. It should detect words that require optimization and simply step over, rather than into, them when asked to.

This revision created on Fri, 26 Feb 2010 22:27:54 by jckarter

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.