RETRO FORTH is a concatenative programming language with roots in Forth. Designed to be compact, learnable, and easy to adapt to specific needs, it has been developed and refined through continual use by a small community over more than a decade.

Forth is a stack based programming language created in the late 1960's by Chuck Moore. Over the intervening decades it has evolved through use, with many dialects along the way.

The Retro dialect was created in the late 1990's, and has been continually developed and supported for over 15 years. It is a structured, imperative stack-based language with modern facilities including quotations and reflection.

It features:

- latest version of the RETRO language
- a code editor using Markdown subset
- literate programming style
- code is extracted from fenced blocks in Markdown source allowing easy mixing of code and commentary
- allows use of unicode & emoji in source & commentary
- interactive listener interface for quick interactions
- simple console output and text input
- editor provides quick access to numbers and symbols
- support for fetching textual data from Gopher servers
- file manager
- documentation browser

It also includes documentation and several optional examples.

What’s New

Version 2021.1

Updated to the latest image and documentation. This also brings some small bug fixes and corrections need removes deprecated functions from the language.

Ratings and Reviews

4.4 out of 5
5 Ratings

5 Ratings

tiorbinist ,

Precipitous learning curve

Hi Charles,
There are a few things that would help someone new to Retro, but not to FORTH, and I would like to suggest them, in the hopes that they could make Retro Forth a little more attractive to, say, Fathers who are beginning to teach their 9-year-olds about programming, and who themselves have lots of experience.

First and foremost is the documentation.
If the Documentation reader were to retain where the user was when they switch to the split to try the given examples, it would reduce frustration immensely.
Because we’re new to Retro, if not to Forth, an early (very early) Link to a list of the differences between, say, an ANSI Forth (and yes, I know that no ANSI standard has been released) and Retro would be a tremendous help.
A quick description of the tabs, what they do and how you use them is in order, extremely early in the documentation.
I will admit that, having spent decades with the Forth83 interface, having an immediate mode that operates like a terminal is very helpful. The split allows one to see documentation and output at the same time, which is cool, but each entry disappears at the first space, and frankly, with no view of any part of the stack, it’s hard to tell that anything is happening at all.
While the prefixing idea certainly has merit (and your community have adopted it without great insurrections) there should be some means of discerning which prefixes have been added to which words. While it is pretty easy to decide that a function you are creating belongs among the ones that fetch a value or store it, some of the others aren’t so obvious from the other side. Should eq? Be system, math, text, comparisons, or yet some other subset of the dictionary? What did the programmer who assigned it think like... except we don’t know the programmer personally, and apparently we don’t know all the prefixes used in the basic Retro system.
Any of these conveniences can be given a visibility/actuation button to turn them on and off, so that, with all turned off, the program looks exactly as it does now, which is no doubt pleasing to the community of Retro users.

Words tab:
Pursuant to the problem of figuring out what the system-creator prefixed words with, or just finding the little buggers in the first place, there needs to be some kind of lookup. If it recognized subsets of words and made a list, it would become useful. Like the documentation, it _ought_ to be able to keep your place, and it might keep your last search, but currently, switching tabs returns the Words tab to the beginning.

Vocabulary words:
I spent some considerable time, back in the early 90s, arguing for inclusion of decompiling words and documentation words in the Standard: View, See, etc. You can limit those that decompile from the living code to keep them from decompiling _your_ code, pretty easily, but being able to see the code _we_ write is a must. Even Words, as much of a spew as it is, can be invaluable in the first contact with a new Forth, and frankly, as age settles in, is pretty valuable thereafter.

Those are my reflections on my first hour of experience. I have no doubt that, with enough weeks of reading the documentation and drawing charts and writing code on paper so I can test them immediate, that I will be up to speed with the rest of the community, but those necessities are counter to the principles that Charles Moore established as his reasons for creating FORTH in the first place. Not to mention that no 9-year-old is going to read the documentation for longer than about 2 minutes.

App Privacy

The developer, Charles Childers, indicated that the app’s privacy practices may include handling of data as described below. For more information, see the developer’s privacy policy.

Data Not Collected

The developer does not collect any data from this app.

Privacy practices may vary, for example, based on the features you use or your age. Learn More


  • Family Sharing

    With Family Sharing set up, up to six family members can use this app.

More By This Developer

You May Also Like