User:Optimumframe/sandbox

FRED (Computer Language)

The FRED computer language is an interactive interpreter and a spreadsheet language built into Framework. FRED is essentially an interactive user interface to eval  integrated into a hierarchical document-based GUI desktop metaphor where all data elements such as spreadsheet cells, pictures, text frames and other types which can be grouped and organized as outlines are FRED programming objects. FRED referencing follows the document hierarchy determined by the user and any data element in the system can contain FRED code in its formula area which make it a user defined function that can accept parameters, perform operations on its own or any other content, call other functions and return a value to its caller. FRED has a few hundred internal functions some timed refereed to as verbs. FRED include a Low Level Interface (LLI) that make it possible to compile modules written in C or ASM to operate on Framework elements and can be expanded with dynamic link library files (.FWL) compiled with FrameworkPascal that can be called as user define FRED functions and operate on the Windows API when running under Windows in Virtual mode. FRED expressions are typically written in the formula (back) area of frames or cells which continue to contain their data in their content area but behave as both, a function and an object. The frame label become the function name and the frame content (front area) display the formatted returned value of the function when it is not occupied by user's data.

A function label preceded by an @ sign calls the function. A parameter area enclosed in is mandatory for functions that received parameters. A FRED program consists of multiple lines of FRED expressions in a frame formula area. Each program is also a function that can be called by preceding its frame label with the @ character. If the content (front) area of a function frame is not occupied with user's text, picture or another frame the result of the last expression in that frame formula (that function return value) will be formatted and displayed in it.

FRED can perform all Framework user interface operations, sense all states and information accessible to the user via the GUI, and perform all GUI operations by calling built in functions (verbs) or by operating the GUI.

FRED History
FRED was created as part of Framework after the initial container based infrastructure was done and a need for a powerful spreadsheet language arose. Instead of just a spreadsheet language it was implemented to consider each and every element of the system as an object with John McCarty's Eval which is fundamental to most interpreters and Lambda engines at FRED center. Eval is exposed by an internal FRED functions named @value. A string sent to @value as a parameter will be evaluated as a FRED expression.

FRED internal functions
FRED internal functions are called just as users-created frame-based functions. When a user name a function with the same name of an Internal function the internal function will be called when referenced with the @ sign.

FRED arithmetic operators are: + - * / ^ % (square root is done by a function @sqrt) FRED boolean operators are pascal like: = < > <> FRED assignment operator is pascal like: :=

FRED syntax
FRED syntax is simple but explicit. Strings are enclosed (delimited) in quotation marks and can be concatenated with the ampersand operator &. A coma must separate parameters and functions. A string without quotes considered a reference to a frame resulting in the referenced frame content being returned. The @ character preceding a reference will call the frame formula executing its code and returning a value. Referencing a frame without the preceding @ sign simply retrieved it value so frames can be used as variables just like spreadsheet cells. A double @@ preceding a reference will call the content area of the frame so a frame can contain two programs, in its formula area as well as its content area. The semicolon ; character mark the beginning of a comment to the end of the line.

FRED highlight syntax and parameters in error and return specific error messages such as "Excerpted a string reference" or "Expected numeric value".

Object-based programming
Object-based programming. FRED references are relative to the current executing frame with a dot. separating path elements. FRED resolved its references based on the frames hierarchy so a container frame that hold other frames and containers can be used as a class containing its functions, variables as well as other classes.

Framework FRED Developer's Toolkits
Framework FRED Developer's Toolkits that included LLI (Low Level Interface Tools and code) was published by Ashton-Tate. The current versions include the Framework Pascal compiler which can be used to compile Framework .FWL dynamic link libraries module to allow FRED to access the Windows API calls as FRED user functions functions.

Runtime Version
Framework Runtime Version licensing for FRED programs was an original Ashton-Tate packaging method that allowed programmers that used interpreters such as dBase and Framework to distribute their programs to their customers just like compiled programs are distributed without having to pay for a a product. It is essentially a fully functional version that only display program output. It make it possible for FRED programmers to distribute FRED programs without requiting their costumers to pay for a Framework version.

FRED Manuals
Ashton-Tate Published extensive user manuals which were updated, digitize and integrated into the hypertext-based help system of the current version of Framework.

FRED Books
Adam B. Green "Advanced Framework User's Guide" (ISBN 0-23-011230-5 {PBK.}) featuring a forward by Gary Lu and an interview with Robert Carr, author of Framework. Prentice-Hall 1985, was one of the first books that illustrated FRED programming and included an index of built-in FRED functions.

Bill Harrison (German Version) Framework III, 1989, Springer Fachmedien Wiesbaden, ISBN10 3528046961, ISBN13 9783528046965 Bei Framework III handelt es sich um die neuste Weiterentwicklung eines Produktes, das von Robert Carr und dessen Kollegen bei der Forefront Cor- poration konzipiert wurde. Es kam 1984 zum ersten Mal auf den Markt und eroberte auf Anhieb weltweit eine beachtliche Anwendergemeinde. Dem Produkt lag ein ambitioniertes Konzept zugrunde: Ein System sollte mit allen fiir die üblichen Geschäftsanwendungen erforderlichen Tools ausgestattet werden; gleichzeitig sollte es leicht zu erlernen und genauso mühelos anzu- wenden sein. Konzept und Architektur von Framework wurden ein voller Er- folg. Das Kernstück der Benutzerschnittstelle bilden die Frames, mittels derer Da- ten zwischen Dateien und Anwendungen verschoben und bearbeitet werden. Hieraus resultierte auch der Name Framework. Obwohl Framework mittler- weile sieben die Produktivität des Benutzers steigernde Tools in einem einzi- gen System zusammenfaßt, kann es auch als Host-Umgebung fiir andere Softwareprodukte fungieren. Benutzerspezifische Applikationen könne- auch im Netzbetrieb - mit Hilfe der Programmiersprache FRED erstellt wer- den. Die stetig wachsende Vertrautheit der Framework-Klientel mit dem Produkt und zudem die erweiterte Funktionalität der Personal Computer fiihrte auch zu einer kontinuierlichen Weiterentwicklung von Framework. 1985 verbes- serte Ashton-Tate die Kapazität, Verarbeitu"ngsleistung und Geschwindigkeit und rüstete die Benutzerschnittstelle mit neuen Leistungsmerkmalen und Menüs aus. Die neue Version erhielt den Produktnamen Framework 11. Mit Framework III ist es Ashton-Tate erneut gelungen, das Leistungsvermögen von Framework zu steigern. Als neue Funktionen wurden der lokale Netz- werkbetrieb, E-Mail, mehrsprachige Rechtschreibüberprüfung, Farbdarstel- lung, neue Eingabeformate, Unterstützung mehrerer Drucker, Plotter und Schriftarten und erweiterte Textverarbeitungsfunktionen implementiert.