Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
FOCAL (programming language)
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Programming language used on DEC PDP-series machines}} {{For|the unrelated set of programming-related features on HP41 calculators|FOCAL (Hewlett-Packard)}} {{Infobox programming language | name = FOCAL | paradigm = [[Imperative programming|imperative]] | family = [[JOSS]] | designer = Richard Merrill | developer = [[Digital Equipment Corporation|DEC]] | released = {{Start date and age|1968}} | discontinued = Yes | influenced by = [[JOSS]] | influenced = [[BASIC-PLUS]] | website = }} '''FOCAL''' (acronym for '''Formulating On-line Calculations in Algebraic Language''',{{sfn|Manual|1968|p=1.1}} or '''FOrmula CALculator'''<ref>{{cite book |url=http://bitsavers.org/pdf/dec/_Books/DEC_1957_To_The_Present_1978.pdf |title=DEC, 1957 to the Present |publisher=DEC |date=1978 |page=38}}</ref>) is an interactive [[Interpreter (computing)|interpreted]] [[programming language]] based on [[JOSS]] and mostly used on [[Digital Equipment Corporation]] (DEC) [[Programmed Data Processor|PDP]] series machines. JOSS was designed to be a simple language to allow programs to be easily written by non-programmers. FOCAL is very similar to JOSS in the commands it supports and the general [[Syntax (programming languages)|syntax]] of the language. It differs in that many of JOSS' advanced features like [[Range (computer programming)|ranges]] and [[user-defined function]]s were removed to simplify the [[parser]] and allow the system to run in less memory. Some of the [[reserved word]]s (keywords) were renamed so that they all start with a unique first letter. This allows users to type in programs using one-character statements, further reducing memory needs. This was an important consideration on the [[PDP-8]], which was often limited to a few [[kilobyte]]s (KB). Like JOSS, and later [[BASIC]]s, FOCAL on the PDP-8 was a complete environment that included a [[line editor]], an [[Interpreter (computing)|interpreter]], and [[input/output]] routines. The package as a whole was named ''FOCAL-8'', which also ran on the [[PDP-5]] and [[PDP-12]]. When ported to the [[PDP-11]], the resulting ''FOCAL-11'' relied on the underlying [[operating system]], [[RT-11]], to provide file support and editing. The language definition was updated twice, to ''FOCAL-69'' and a very slightly modified ''FOCAL-71''. A port to the [[Intel 8080]] was also available. FOCAL is notable as the language in which the original versions of the early [[video game]]s [[Hamurabi (video game)|''Hamurabi'']] and [[Lunar Lander (video game genre)|''Lunar Lander'']] were written. Both were later ported to BASIC, where they became much better known.<ref name="TIME">{{cite magazine |url=https://time.com/69316/basic/ |title=Fifty Years of BASIC, the Programming Language That Made Computers Personal |magazine=[[Time (magazine)|Time]] |last=McCracken |first=Harry |date=2014-04-29 |access-date=2016-02-12 |archive-url=https://web.archive.org/web/20160205214236/http://time.com/69316/basic/ |archive-date=2016-02-05 |url-status=live}}</ref> FOCAL was not popular outside the PDP platform and largely disappeared during the move to the [[VAX-11]]. It had a strong revival in the [[Soviet Union]] where PDP-11 clones were used as educational and [[home computer]]s ([[Electronika BK|BK series]]).
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)