Category:FormulaOne

From Rosetta Code
Revision as of 10:10, 1 April 2015 by rosettacode>Snwi
Language
FormulaOne
This programming language may be used to instruct a computer to perform a task.
See Also:


Listed below are all of the tasks on Rosetta Code which have been solved using FormulaOne.
Language
FormulaOne
This programming language may be used to instruct a computer to perform a task.
Official website
Execution method: Compiled (bytecode)
Garbage collected: No
Parameter passing methods: By reference
Type strength: Weak
Type expression: Implicit
Type checking: Dynamic, Static
Lang tag(s): FormulaOne
See Also:
Listed below are all of the tasks on Rosetta Code which have been solved using FormulaOne.
Try this language on Codepad.

FormulaOne is the name of both programming language and implementation.

FormulaOne integrates procedural, declarative and database programming into one highly efficient language. Procedural programming shows weakness when faced with problems concerning logic reasoning. FormulaOne, being a declarative language as well, has the tools built into its inference engine, which organizes information and then, when queried, finds a way to logically interpret and process that information.

FormulaOne can be learned by a beginner but will be most appreciated by experienced programmers. If you are a problem solver, FormulaOne's truly unique implementation of constraints will be invaluable. Constraints enable numeric problems to be solved more rapidly, by orders of magnitude - in real time. And they work readily with FormulaOne's highly structured and modular nature to produce better code. "Better" code means more readable, more error-free and easier to maintain and change. This is another reason why FormulaOne is superior to any other declarative programming language. What Is FormulaOne? FormulaOne is a computer programming language, but it's also a complete programming environment that gives programmers the ability to efficiently develop, test and run their programs. At the heart of FormulaOne is the language itself, which can be viewed as a successor to the procedural language of the third generation Pascal, extended to cover the paradigms of database languages (fourth generation) and logic languages (fifth generation). FormulaOne has the readability and efficiency of third-generation languages like BASIC, C, and Pascal, and the database update and query capabilities of fourth-generation systems. These features are all brought together by the powers of symbolic computing and logic programming with backtracking search - the same power as in fifth-generation languages like Prolog. Along with the FormulaOne language comes a complete visually oriented IDE environment. In the FormulaOne system, users can edit, compile, and run programs; build, query, and update database files; and create interlocking structures of program modules and databases of any desired complexity. FormulaOne and Other Languages FormulaOne is a new programming language, so it's useful to compare and contrast it to other popular programming languages. The foundations of FormulaOne are most like those of Prolog. Both languages:

   Are based on mathematical logic, and have a precise declarative semantics (a static, clearly-defined meaning for every component of the language)
   Have programs which are run by asking questions rather than giving commands;
   Are able to handle symbolic variables, whose values are determined by backtracking search.
   However, FormulaOne recognizes the deficiencies of Prolog in areas where languages like Pascal do better.


Both FormulaOne and Pascal:

   Have a clear but concise nested program structure, rather than the difficult-to-read clauses of Prolog;
   Have if and case constructs that improve readability;
   Can produce fast, compact, non-backtracking code when desired.


But the type structure of FormulaOne is more like that of C than the loose structure of most prologs or the rigid one of Pascal. In FormulaOne, you can build arrays, structures, lists, and unions which are implemented as efficiently as they are in C. And as in C, terms of one type can be recast into terms of another type, when possible. FormulaOne also has many advanced features which are not found in either Prolog, Pascal or C. These include:

   A leading-edge decision procedure for systems of constraints composed of arithmetic formulas, built into the language itself;
   A database file query system which is fully integrated with programs;
   Variable modes, which allow the language to check the data flow in programs for correctness;
   Useful data types not found in most languages, such as relations and injections;
   A module system which supports incremental compilation, linking, and loading of program modules.


In addition to all this, FormulaOne is firmly grounded in its underlying logic. Instead of the non-declarative, extra logical features of Prolog, like "cut", there are features like "if" which are more powerful, readable, and logically valid. There is not a single extra logical feature in FormulaOne. Formulas and Queries FormulaOne is different from other programming languages, and systems, in many ways. In well-known languages like Basic and Pascal, we order the computer to perform some task for us, and watch the results. In FormulaOne, we ask the computer questions and get responses. The basic unit of programming in FormulaOne is the formula. A formula is a statement about the world, phrased in a language similar to mathematical logic. When we enter a formula into the query window of the FormulaOne system, it is interpreted as a query; the system will respond by stating whether the query is true, or by stating the conditions under which it's true.

Pages in category "FormulaOne"

This category contains only the following page.