Jump to content

ColorForth: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
cite web used (say no to linkrot!)
copy edit this weakly sourced article. Fix list gaps.
 
(19 intermediate revisions by 14 users not shown)
Line 1: Line 1:
{{Short description|Programming language}}
{{Refimprove|article|date=August 2007}}
{{Refimprove|article|date=August 2007}}

{{lowercase|title=colorForth}}
{{lowercase|title=colorForth}}
{{ infobox programming language
{{ infobox programming language
Line 10: Line 10:
| developer = [[Charles H. Moore]]
| developer = [[Charles H. Moore]]
| latest_release_version = {{start date and age|2001|7|31}}<ref name="status">{{cite web
| latest_release_version = {{start date and age|2001|7|31}}<ref name="status">{{cite web
| url=http://www.colorforth.com/status.html
| url=https://colorforth.github.io/status.html
| title=colorForth Status
| title=colorForth Status
| date=September 2002
| date=September 2002
| archiveurl=https://wayback.archive.org/web/20160310135832/http://colorforth.com/status.html
| archiveurl=https://web.archive.org/web/20160310135832/http://colorforth.com/status.html
| archivedate=2016-03-10
| archivedate=2016-03-10
| url-status=dead
| deadurl=yes}}</ref>
}}</ref>
| typing = typeless
| typing = Typeless
| dialects =
| dialects =
| implementations =
| implementations =
Line 22: Line 23:
| influenced =
| influenced =
| license = [[Public domain]]<ref name=status/>
| license = [[Public domain]]<ref name=status/>
| website = {{URL|http://www.colorforth.com}}{{Dead link|date=July 2016}}
| website = Archived at {{URL|https://colorforth.github.io/}}
| file_ext =
| file_ext =
}}
}}
'''colorForth''' is a [[programming language]] from the [[Forth (programming language)|Forth]] language's original designer, [[Charles H. Moore]], developed in the 1990s. There was an earlier predecessor called 386 OK which appeared for sale at Silicon Valley Forth Interest Group (SVFIG)<ref>{{cite web
'''colorForth''' is a [[programming language]] from the [[Forth (programming language)|Forth]] language's creator, [[Charles H.&nbsp;Moore]], developed in the 1990s. The language combines elements of Moore's earlier Forth systems and adds color as a way of indicating how words should be interpreted. Program text is tokenized as it is edited; the compiler operates on the tokenized form, so there is less work at compile time.
| url=http://forth.org/svfig/
| title=Silicon Valley Forth Interest Group
| date=2011-05-16
| accessdate=2017-06-08}}</ref> meetings in 1992.<ref>386 OK, A new Operating System Invented by Chuck Moore, Computer Cowboy Reins In A Wildhorse, C.H.Ting, Offete Enterprises, 1992</ref>


An idiosyncratic programming environment, the colors simplify Forth's semantics, speed compiling, and are said to aid Moore's own poor eyesight: colorForth uses different colors in its source code (replacing some of the punctuation in standard Forth) to determine how different words are treated.
colorForth is an idiosyncratic programming environment: the colors simplify Forth's semantics, speed compiling, and are said to aid Moore's own poor eyesight: colorForth uses different colors in its source code (replacing some of the punctuation in standard Forth) to determine how different words are treated.


colorForth was originally developed as the scripting language for Moore's own homebrew VLSI CAD program OKAD,<ref>{{cite web
colorForth was originally developed as the scripting language for Moore's own [[VLSI]] [[CAD]] program, OKAD,<ref>{{cite web
| url=http://www.ultratechnology.com/okad2.htm
| url=http://www.ultratechnology.com/okad2.htm
| title=OKAD II (Oh CAD Two)
| title=OKAD II (Oh CAD Two)
Line 39: Line 36:
| accessdate=2017-06-08}}</ref> with which he develops custom Forth processors. As the language gained utility, he rewrote his CAD program in it, spruced up the environment, and released it to the public. It has since gained a small following, spurred much debate in the Forth community, and sprung offshoots for other processors and operating environments. The language's roots are closer to the Forth machine languages Moore develops for his processors than to the mainstream standardized Forths in more widespread use.
| accessdate=2017-06-08}}</ref> with which he develops custom Forth processors. As the language gained utility, he rewrote his CAD program in it, spruced up the environment, and released it to the public. It has since gained a small following, spurred much debate in the Forth community, and sprung offshoots for other processors and operating environments. The language's roots are closer to the Forth machine languages Moore develops for his processors than to the mainstream standardized Forths in more widespread use.


The language comes with its own tiny (63K) [[operating system]]. Practically everything is stored as source code and compiled as and when needed. The current colorForth environment is limited to running on [[Pentium compatible processor|Pentium]] grade PCs with limited support for lowest-common-denominator motherboards, AGP video, disk, and network hardware.
The language comes with its own tiny (63&nbsp;KB) [[operating system]]. Practically everything is stored as source code and compiled when needed. The current{{when?|date=December 2023}} colorForth environment is limited to running on [[Pentium compatible processor|Pentium]]-grade PCs with limited support for lowest-common-denominator motherboards, AGP video, disk, and network hardware.

Coloring in colorForth has semantic meaning. Red words start a definition, and green words are compiled into the current definition. Thus, <span style="color:red;">color</span><span style="color:green;">Forth</span> would be written in standard Forth as
: color forth ;


Yellow words are executed. The transition from green to yellow and back again can be used while defining words, to transition between compiling words into the current definition, executing words immediately (manipulating the data stack during compilation), and back again (adding the top of the data stack to the current definition){{snd}} in other words, precomputing a value during compilation (a functionality that other languages use macros or optimizing compilers for).<ref name="wordformat">{{cite web
Coloring in colorForth has semantic meaning. Red words start a definition and green words are compiled into the current definition. Thus, <span style="color:red;">color</span><span style="color:green;">Forth</span> would be rendered in standard Forth as:
| url=http://www.colorforth.com/parsed.html
: color forth ;
| title=PreParsed Word Format
| website = colorforth.com
| date=December 2001
| archiveurl=https://web.archive.org/web/20110906081208/http://www.colorforth.com/parsed.html
| archivedate=2011-09-06
| url-status=dead
}}</ref>


Moore developed Forth in the early 1970s and created a series of implementations of the language. In the 1980s he diverged from (or rather ignored) the standardization of the language, instead continuing to evolve it. He developed a series of Forth-like languages, each fairly extreme in its simplicity: Machine Forth, OK, colorForth.
Moore developed Forth in the early 1970s and created a series of implementations of the language. In the 1980s he diverged from the standardization of the language, instead continuing to evolve it. He developed a series of Forth-like languages, each extreme in its simplicity: Machine Forth, OKAD, and colorForth.


There is some controversy about colorForth marginalizing [[color blindness|color blind]] programmers, but Moore has stated that color is only one option for displaying the language. One of Moore's papers on colorForth was printed in black and white, but used italics and other typographical conventions to present source code.
Moore has stated that color is only one option for displaying the language.{{Citation needed|date=October 2019}} One of Moore's papers{{which?|date=December 2023}} on colorForth was printed in black and white but used italics and other typographical conventions to present source code.


== References ==
== References ==
Line 52: Line 59:


== External links ==
== External links ==
* {{cite web
* [http://www.strangegizmo.com/forth/ColorForth/ colorForth mailing list archive]
* [http://www.ultratechnology.com/forth0.htm#mf Machine Forth] and colorForth
| url=http://www.strangegizmo.com/forth/ColorForth/
| title=ColorForth Mail List Archive
* [https://web.archive.org/web/20050901105808/http://www.inventio.co.uk:80/cfdos.htm www.inventio.co.uk/cfdos.htm] - colorForth downloader / source reader
| author=Michael Alyn Miller}}
* [http://cflinks.strangegizmo.com/ more colorForth links]
* {{cite web
| url=http://www.ultratechnology.com/forth0.htm#mf
| title=Forth Software and Hardware by Date: Machine Forth and colorForth
| date=2006-04-17
| publisher=UltraTechnology}}
* {{cite web
| url=http://www.inventio.co.uk/cfdos.htm
| title=colorForth downloader
| date=2016-05-24
| author=Howerd Oakford}}
* {{cite web
| url=http://cflinks.strangegizmo.com/
| title=colorForth Resources
| date=2003-08-11}}
* {{SourceForge|colorforth|colorForth code repository and joint development effort}}
* {{SourceForge|colorforth|colorForth code repository and joint development effort}}
* {{Webarchive
* http://Forthworks.com/c4th/ {{Dead link|date=July 2016}} The Community and Documentation Wiki in progress
| url=https://web.archive.org/web/20140116175425/http://forthworks.com/c4th/doku.php
* http://www.greenarraychip.com/home/documents/greg/cf-intro.htm Introduction to arrayForth™
| title=ColorForth Community Wiki
| date=2014-01-16}}
* {{cite web
| url=http://www.greenarraychips.com/home/documents/greg/cf-intro.htm
| title=Introduction to arrayForth™
| author=Greg Bailey}}


[[Category:Concatenative programming languages]]
[[Category:Concatenative programming languages]]
[[Category:Experimental programming languages]]
[[Category:Forth programming language family]]
[[Category:Forth programming language family]]

Latest revision as of 06:54, 4 March 2024

colorForth
ParadigmProcedural, stack-oriented
Designed byCharles H. Moore
DeveloperCharles H. Moore
First appeared1990s
Stable release
July 31, 2001; 23 years ago (2001-07-31)[1]
Typing disciplineTypeless
LicensePublic domain[1]
WebsiteArchived at colorforth.github.io
Influenced by
Forth

colorForth is a programming language from the Forth language's creator, Charles H. Moore, developed in the 1990s. The language combines elements of Moore's earlier Forth systems and adds color as a way of indicating how words should be interpreted. Program text is tokenized as it is edited; the compiler operates on the tokenized form, so there is less work at compile time.

colorForth is an idiosyncratic programming environment: the colors simplify Forth's semantics, speed compiling, and are said to aid Moore's own poor eyesight: colorForth uses different colors in its source code (replacing some of the punctuation in standard Forth) to determine how different words are treated.

colorForth was originally developed as the scripting language for Moore's own VLSI CAD program, OKAD,[2] with which he develops custom Forth processors. As the language gained utility, he rewrote his CAD program in it, spruced up the environment, and released it to the public. It has since gained a small following, spurred much debate in the Forth community, and sprung offshoots for other processors and operating environments. The language's roots are closer to the Forth machine languages Moore develops for his processors than to the mainstream standardized Forths in more widespread use.

The language comes with its own tiny (63 KB) operating system. Practically everything is stored as source code and compiled when needed. The current[when?] colorForth environment is limited to running on Pentium-grade PCs with limited support for lowest-common-denominator motherboards, AGP video, disk, and network hardware.

Coloring in colorForth has semantic meaning. Red words start a definition, and green words are compiled into the current definition. Thus, colorForth would be written in standard Forth as

: color forth ;

Yellow words are executed. The transition from green to yellow and back again can be used while defining words, to transition between compiling words into the current definition, executing words immediately (manipulating the data stack during compilation), and back again (adding the top of the data stack to the current definition) – in other words, precomputing a value during compilation (a functionality that other languages use macros or optimizing compilers for).[3]

Moore developed Forth in the early 1970s and created a series of implementations of the language. In the 1980s he diverged from the standardization of the language, instead continuing to evolve it. He developed a series of Forth-like languages, each extreme in its simplicity: Machine Forth, OKAD, and colorForth.

Moore has stated that color is only one option for displaying the language.[citation needed] One of Moore's papers[which?] on colorForth was printed in black and white but used italics and other typographical conventions to present source code.

References

[edit]
  1. ^ a b "colorForth Status". September 2002. Archived from the original on 2016-03-10.
  2. ^ "OKAD II (Oh CAD Two)". 2001-07-01. Retrieved 2017-06-08.
  3. ^ "PreParsed Word Format". colorforth.com. December 2001. Archived from the original on 2011-09-06.
[edit]