Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support False #2801

Closed
edukisto opened this issue Mar 12, 2021 · 2 comments · Fixed by #2802
Closed

Support False #2801

edukisto opened this issue Mar 12, 2021 · 2 comments · Fixed by #2802

Comments

@edukisto
Copy link
Contributor

edukisto commented Mar 12, 2021

Language

The author of the language is Wouter van Oortmerssen (@aardappel).

Any number of tabs, line feeds, and spaces are allowed between symbols.

Variables must have names from a to z. Uppercase and multicharacter names are disallowed.

Comments

  • can be placed anywhere, but can’t be nested (parser seeks for a closing character until the first match);
  • don’t allow escaping;
  • can be empty;
  • can be multiline;
  • require a closing character even at the EOF.

Strings work exactly the same.

The " character can’t appear inside a string.

The { character can appear inside comments.

The } character can’t appear inside comments.

Tested with the Portable False Interpreter/Debugger v0.1 (1993).

Compatibility table of operators

Standard or implementation ( ) < B D O ® ß ø
Standards
False - - - - - - - + +
False! + + + ! ! ! - - -
Strictly False - + + ! ! ! - - -
Implementations
68000 Assembler - - - - - - - + +
ANS Forth + + + - - - - + +
C - - - + + + - - -
Forth + + + + - + - + -
K (False!) + + + ! ! ! - - -
JavaScript (by Anthony Morphett) - - - ! ! ! + = +
JavaScript (by Ian Osgood) = = = - - - - = +
Node.js - - - + - + - + +
Red - - - - - - - + +

Explanation:

! – detected as a variable;
+ – detected as an operator;
- – not detected;
= – detected as operator, but left implemented, commented, etc.

It is possible to provide a support for False! and Strictly False. The main problem is that False! supports uppercase variables (their names can overlap with non-standard B, D, O operators).

Additional resources

The False Programming Language. A site created by the author of the language.

The FALSE Programming Language (the original manual).

False 1.2b distribution (two implementations in 68000 Assembler and C).

False interpreter in JavaScript (by Anthony Morphett).

FALSE Language Interpreter (by Ian Osgood).

@edukisto
Copy link
Contributor Author

I’ll do my best to make a PR on the weekend.

@edukisto
Copy link
Contributor Author

There is also F. The language should not be confused with F and F*.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant