RETRO FORTH

RETRO FORTH


Forth Programming Language


免費

2021.1for iPhone, iPad and more
8.7
5 Ratings
Charles Childers
Developer
4.1 MB
Size
2021年02月07日
Update Date
Developer Tools
Category
4+
Age Rating
Age Rating
4+
Apps in this category do not contain restricted content.
9+
Apps in this category may contain mild or occasional cartoon, fantasy or real-life violence, as well as occasional or mild adult, sexually suggestive or horrifying content and may not be suitable for children under 9 years of age.
12+
Apps in this category may contain occasional mild indecent language, frequent or intense cartoon or real-life violence, minor or occasional adult or sexually suggestive material, and simulated gambling, and may be for children under 12 years of age.
17+
You must be at least 17 years old to access this App.
Apps in this category may contain frequent and intense offensive language; Frequent and intense cartoon, fantasy or realistic violence: frequent and intense adult, scary and sexually suggestive subjects: as well as sexual content, nudity, tobacco, alcohol and drugs, may not be suitable for children under 17 years of age.
RETRO FORTH 螢幕截圖
RETRO FORTH 海報RETRO FORTH 海報RETRO FORTH 海報RETRO FORTH 海報RETRO FORTH 海報RETRO FORTH 海報RETRO FORTH 海報
RETRO FORTH 海報RETRO FORTH 海報RETRO FORTH 海報RETRO FORTH 海報RETRO FORTH 海報RETRO FORTH 海報

About RETRO FORTH

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.
Show More

最新版本2021.1更新日誌

Last updated on 2021年02月07日
歷史版本
Updated to the latest image and documentation. This also brings some small bug fixes and corrections need removes deprecated functions from the language.
Show More
Version History
2021.1
2021年02月07日
Updated to the latest image and documentation. This also brings some small bug fixes and corrections need removes deprecated functions from the language.
2020.1
2020年02月10日
Updated to the latest RETRO system and documentation. I've also made some more updates to the UI, adding a light mode and fixed numerous bugs.
2019.8
2019年08月11日
It's been a long time coming, but a new update is here.

This update brings a new interface that improves usability on iPhone and overall readability. It also brings in a new settings screen, allowing selection of the icon to better fit your preferences.

Beyond this, nearly every aspect of the underlying system has been updated. Of note, the runtime is now completely rewritten and is faster and more stable than before. Optimizations have been made to the gopher support. The system is also now running the latest image which adds numerous improvements to the language, removes deprecated functions, and has a number of performance enhancements.

The documentation is improved as well. The manual is now nicely formatted, and is significantly expanded, with more examples and deeper explanations of the functions and their usage. The glossary browser is also updated with the latest words.
2018.8
2018年08月01日
This release brings many changes and improvements to the language and editor.

Interface:

- darker colors, better text contrast
- file manager improvements:
- files now sorted alphabetically
- support for renaming files
- now uses only ~~~ for code blocks

Core Language Improvements

- renamed functions for better consistency with the namespaces
- puts => s:put
- putc => c:put
- putn => n:put
- putf => f:put
- words => d:words
- s:with-format => s:format
- removed tors as it was unused
- new words:
- d:words-with
- set:make
- { and }

Other Improvements

- file:slurp now matches the documentation
- removed ui:get-input (proved too buggy)
- new floating point words
- f:NAN
- f:INF
- f:-INF
- f:nan?
- f:inf?
- f:-inf?
- f:sqrt
- f:round
- f:square
- new file words:
- file:open[for-reading]
- file:open[for-append]
- file:open[for-writing]
2018.4.23
2018年04月23日
A minor update to followup on 2018.4:

- Replace the `editor` namespace with `config`
- Add new options to control font, sizing in the editor, output, and toolbars separately

See the "User Interface" document for some notes & examples on using these.

This also contains an updated Glossary, fixing a couple of small typos and adding the new words.

I've also removed the buggy "highlight code blocks" option as it was causing some instability.

Previously:

It's been a while... so here's what's new:

- rewrote `s:eq?`, leading to significant performance improvements
- added `times[with-index]` and `I`, `J`, `K` for loop indexes
- faster code generation
- reduced size of the standard library by about 1/2KiB by some clever reordering of code
- updated the documentation
- added some words in the new `editor` namespace to allow changing fonts, sizing. See the "User Interface" documentation for more details and some examples.
- updated the examples
- some general stability improvements thanks to expanded error checks
2018.4
2018年04月19日
It's been a while... so here's what's new:

- rewrote `s:eq?`, leading to significant performance improvements
- added `times<with-index>` and `I`, `J`, `K` for loop indexes
- faster code generation
- reduced size of the standard library by about 1/2KiB by some clever reordering of code
- updated the documentation
- added some words in the new `editor` namespace to allow changing fonts, sizing. See the "User Interface" documentation for more details and some examples.
- updated the examples
- some general stability improvements thanks to expanded error checks
2018.1
2018年01月23日
I work to continue improving RETRO for you.

This release brings in the latest image (RETRO-2018.1), adds support for the '\r' escape sequence in strings (when using `s:with-format`), and adds `f:ceiling` to the floating point vocabulary. The Glossary has been updated and now includes more examples.

More significant is that RETRO now makes better use of hardware keyboards (if available), with a variety of keyboard shortcuts to make interaction faster and easier.
2017.12.18
2017年12月17日
This is a small maintenance release before the holidays. It has fixes a bug that could cause RETRO to crash in some rare instances, has a bunch of internal cleanups in the editor, and removes some assets that are no longer needed to reduce the application size a little.
2017.12
2017年12月04日
This release brings a number of improvements. The most immediate is a new dictionary browser ("Glossary") which makes it easy to find the basic documentation for each function in the core language. Other changes include expansions to the floating point and string vocabularies, bug fixes, and internal optimizations to save a little space while improving performance.
2017.11
2017年10月31日
Updated to the latest RETRO image with many internal improvements and a few new functions to allow easier debugging.

New words:

- `FREE`
- `s:const`
- `d:lookup-xt`

Improvements:

- Quotations are now smaller and faster
- Jumps are now smaller and faster
- Use of `@` and `!` prefixes is smaller and faster
- Reorganized memory layout to reduce size a little

Bug fixes:

- Changing string size limits now works correctly
- Resolved issue with `n:MIN`
- `set:for-each` now restores the active buffer on completion

Other:

- Fixed some mistakes in the Glossary
2017.10.7
2017年10月08日
This release fixes some issues and adds a little to the language:

- two pieces of documentation were missing; these have been added back
- fixed issues with two of the examples (thanks go to Cmdr Sidley for notifiying me)
- fixed a bug in `ui:get-input` that was causing crashes
- updated to the latest stable retro core
- added `s:evaluate` to interpret data from strings
2017.10
2017年09月28日
This release makes a few small improvements:

- optional use of haptics on iPhone 7 and 8 to indicate button touches and execution completion
- support for unicode and emoji characters
- fixes some typo's in the documentation
2017.9
2017年09月19日
After several months of work I am pleased to announce a new version of RETRO. This update has seen a significant improvement to the user interface and adds many new functions for you to use.

User Interface

- Redesigned UI
- Fixed bugs with rotation handling
- It is now possible to stop code execution if problems are encountered
- Added optional VT220 inspired font
- New color scheme

Documentation

- Imported the latest docs

Language Changes

- Allow use of ~~~ for code blocks (as well as ````)
- gopher:fetch now works with ports other than 70
- Added words:

- muri assembler

- as{
- }as
- r
- d
- i

- numbers

- n:MIN
- n:MAX

- sets

- set:length

- floating point

- n:to-float
- s:to-float
- f:to-string
- f:+
- f:-
- f:*
- f:/
- f:floor
- f:eq?
- f:-eq?
- f:gt?
- f:lt?
- f:depth
- f:dup
- f:drop
- f:swap
- f:over
- f:tuck
- f:positive?
- f:negative?
- f:abs
- f:log (*)
- f:power (*)
- putf (*)
- prefix:. (*)
- f:dump-stack (*)

- strings

- s:copy
- s:DIGITS
- s:ASCII-LOWERCASE
- s:ASCII-UPPERCASE
- s:ASCII-LETTERS
- s:PUNCTUATION
- s:WHITESPACE

- Renamed .s to dump-stack

- Bug Fixes

- n:to-string no longer returns -./,),(-*,( for n:MIN
2017.6
2017年06月07日
This release focuses on stability, environment improvements, and expanding functionality. It includes expanded documentation, more examples, and several new vocabularies to aid in your work.

New Documentation:

- basic architecture
- comparison w/classic Forth
- notes on user interface
- notes on syntax
- notes on quotes, combinators
- notes on namespaces
- notes on naming conventions
- notes on hyperstatic global environment
- iOS specific additions to the language

Updated & New Examples:

- 99 bottles of beer
- autopsy: debugging tool
- two player chess game
- greatest common divisor
- least common multiple
- fibonacci sequence
- factorials
- rosetta code: palindrome detection
- rosetta code: 1d cellular automata

Language Additions:

- added clock: namespace
- clock:year
- clock:month
- clock:day
- clock:hour
- clock:minute
- clock:second

- expanded file: namespace
- file:for-each
- file:list-all
- file:with
- file:size-of-named
- file:spew
- file:copy
- file:slurp

- added ui: namespace
- ui:get-input

- added `gopher:fetch` to obtain textual data from gopher servers

User Interface:

- Added share sheet for exporting documents
- Minor rendering fixes in the editor
- Corrected several bugs with dark mode

This release also fixes a number of rendering bugs and has numerous new optimizations and internal updates to improve performance and reliability.
2017.5
2017年05月26日
Updated to Retro-2017.5 image.

This has a smaller, faster string to number function and adds a new "set:" vocabulary for working with arrays of data, ".s" for quick stack dumps, and a "v:preserve" combinator. The entire core of the language has been hand packed to save a bit more space and eliminate unnecessary functions. The embedded documentation has been updated as well.

This release also brings an enhanced editor with syntax highlighting for more of Markdown (headers, bold and italics are now rendered). The editor also has a fix to a bug that sometimes resulted in fenced code blocks not highlighting properly when a file was initially loaded.
2017.4
2017年04月26日
This is a significant update to the core language and environment.

I'm pleased to bring the Listener into the environment. A small addition to the output panel, this adds a quick interaction model to Retro allowing for interactive testing and exploration of the language. On the language front, Retro now has a tighter, hand tuned core, significantly faster versions of the core string functions, and numerous expansions in other areas. These are covered in the new Glossary document which has been completely rewritten and expanded.

The interface has some small refinements, with a button in the file manager view to restore samples & documentation, separate buttons to switch between output and file manager, and some minor adjustments to button sizing and placement to make things easier to use. There's also a new, slightly more cheerful icon.

The examples have been updated to use new language features.
2017.3
2017年03月29日
This is a small update fixing some bugs and adding background highlighting of code regions for improved readability.
2017.2
2017年03月03日
The second release of 2017 brings some further improvements.

- faster loading of image file
- undo / redo in editor
- code is saved automatically now
- massive increase in memory limits

This release includes the following source modules:

- module|Buffer
- module|Characters
- module|Files
- module|FormattedStringOutput
- module|RML
- module|Strings

The following examples are included:

- example|99Bottles
- example|Autopsy
- example|Chess
- example|DumpImage
- example|GreatestCommonDivisor
- example|IterativeFibonacci
- example|LeastCommonMultiple
- example|RecursiveFactorial
- example|RecursiveFibonacci

The following documentation files are provided:

- doc|Changelog
- doc|CopyrightNotices
- doc|Glossary
- doc|UserInterface
2017.1
2017年01月22日
For this, the first release of 2017, I wanted to make some small, but very significant improvements.

So what's new?

- Bright and dark color schemes (change using Settings -> RETRO12 -> Dark Theme)
- Increased font size for enhanced readability
- Bug fixes in the file manager
- Code evaluator no longer freezes the interface
- Documentation now separate files, not embedded in the image
- As with all updates, this also brings in the latest changes to the RETRO language
2016.12.11
2016年12月13日
* Added `import` for including files in a cleaner manner
* Added source template when creating new files
* Internal cleanups and bug fixes
* Support for side by side & slide over on iPad
2016.12
2016年12月04日
This release is the biggest update so far.

# Project Handling

The handling of projects has changed completely. RETRO now supports multiple source files. There is a file management interface, and Save / Reload now operate on the most recently opened file.

Your code can now reference other files you create using the include word. E.g., if you keep your math functions in Math.md, add this to the start of your main sources:

````
'Math.md include
````

# Pasteboard Namespace

There's a new pb: namespace for access to the pasteboard. You can store and retrieve strings using the words in this namespace. Example:

````
'Hello_pasteboard pb:set
pb:length putn
&Heap fetch dup pb:get puts
````

# Documentation

This release also adds a documentation: namespace which can be used to access embedded documentation files. Example:

````
documentation:glossary
documentation:licenses
````

These replace the old (C) and Glossary buttons.

# Interface Changes

For those on iPhone, the toolbar sizes have been slightly reduced to allow for a little more screen real estate when editing or running code.

The bright theme was removed from this release.

If you use RETRO with a hardware keyboard several shortcuts have been added:

- cmd+s -> save
- cmd+o -> reload
- cmd+g -> go
2016.11.20
2016年11月22日
Bugs were fixed and features were added.

The interface is now more configurable. You can use the options in Settings -> RETRO 12 to:

- enable / disable button showing copyright information
- enable / disable the glossary button
- enable / disable the keyboard accessory

Some other interface improvements have been made:

- there's a new font
- the theme now switches properly when RETRO is opened

On to the language itself:

- updated to the latest RETRO image (minor fixes & tweaks)
- added file I/O: create, delete, read, write, etc text files via the words in the file: namespace

Other changes:

- there's a new, longer introductory text offering a better introduction to the language and interface
2016.11.12
2016年11月11日
Ahh, fall. It's a beautiful time of the year. The air gets colder, leaves change and fall from the trees. And I find myself sipping a cup of tea, pondering where to go with RETRO.

This is the first update of RETRO 12. It's improved in many small ways:

User Interface:

- optional bright color scheme (iOS Settings -> RETRO 12, then toggle "Bright Theme")
- revamped keyboard shortcut bar adding lots of missing symbols
- output no longer brings up the keyboard
- improved handling of buttons in main toolbar

Language Improvements:

- Adds str:for-each for iterating over characters in a string.
- Added v:update-using
- Added: nl
- Added: d:last (and related functions)
- Added does

Other:

- Added a Glossary providing a list of functions, their stack usage, and short descriptions of each
2016.11
2016年11月08日

RETRO FORTH FAQ

點擊此處瞭解如何在受限國家或地區下載RETRO FORTH。
以下為RETRO FORTH的最低配置要求。
iPhone
須使用 iOS 12.4 或以上版本。
iPad
須使用 iPadOS 12.4 或以上版本。
iPod touch
須使用 iOS 12.4 或以上版本。
RETRO FORTH支持英文

RETRO FORTH相關應用

你可能還喜歡

Charles Childers 開發者的更多應用