F-Script is an
object-oriented scripting
Script may refer to:
Writing systems
* Script, a distinctive writing system, based on a repertoire of specific elements or symbols, or that repertoire
* Script (styles of handwriting)
** Script typeface, a typeface with characteristics of handw ...
programming language for
Apple's macOS operating system developed by Philippe Mougin. F-Script is an interactive language based on
Smalltalk
Smalltalk is an object-oriented, dynamically typed reflective programming language. It was designed and created in part for educational use, specifically for constructionist learning, at the Learning Research Group (LRG) of Xerox PARC by Alan Ka ...
, using macOS's native
Cocoa
Cocoa may refer to:
Chocolate
* Chocolate
* ''Theobroma cacao'', the cocoa tree
* Cocoa bean, seed of ''Theobroma cacao''
* Chocolate liquor, or cocoa liquor, pure, liquid chocolate extracted from the cocoa bean, including both cocoa butter and ...
API.
Overview
F-Script is based on a pure object paradigm: every entity manipulated within the language is an object. Its base syntax and concepts are identical to those of the language Smalltalk (the canonical example of an object-oriented language) with specific extensions to support
array programming as in the language
APL.
F-Script provides an
interpreted,
interactive
Across the many fields concerned with interactivity, including information science, computer science, human-computer interaction, communication, and industrial design, there is little agreement over the meaning of the term "interactivity", but mo ...
environment with support for workspaces, which provide a rich set of functions including
object persistence
An object database or object-oriented database is a database management system in which information is represented in the form of objects as used in object-oriented programming. Object databases are different from relational databases which are ...
,
distributed object
In distributed computing, distributed objects are objects (in the sense of object-oriented programming) that are distributed across different address spaces, either in different processes on the same computer, or even in multiple computers conn ...
s,
graphical user interface (GUI) framework,
database access, among other things.
Syntax
Like Smalltalk, F-Script's syntax is very simple, without requiring specific notation for
control structures which are provided in a unified manner by the
message send
operation. Unlike Smalltalk, F-Script provides specific notational extensions to support the
Array
class, using curly brackets to describe literal arrays, which may contain any F-Script expressions.
For example,
is a valid array
literal
Literal may refer to:
* Interpretation of legal concepts:
** Strict constructionism
** The plain meaning rule (a.k.a. "literal rule")
* Literal (mathematical logic), certain logical roles taken by propositions
* Literal (computer programmin ...
. The empty array is denoted by
. Arrays of arrays are supported transparently, since any array is just another object.
Message sending
Message expressions in F-Script are similar to those in Smalltalk: they specify which object is the receiver of the message, which operation is called by the message, and any argument objects needed by the operation. F-Script supports unary, binary, and keyword messages.
F-Script message semantics are extended to support array programming by recognizing that an array operation, such as adding to numerical vectors, must be viewed as generating a number of messages relating the elements of the vectors involved
Thus, if
A =
and
B =
, then F-Script allows
A + B =
.
Usage
F-Script is chiefly used as a lightweight scripting layer on top of
macOS's
Cocoa
Cocoa may refer to:
Chocolate
* Chocolate
* ''Theobroma cacao'', the cocoa tree
* Cocoa bean, seed of ''Theobroma cacao''
* Chocolate liquor, or cocoa liquor, pure, liquid chocolate extracted from the cocoa bean, including both cocoa butter and ...
application programming interface
An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how t ...
(API). It can be embedded in applications using the F-Script framework and
Interface Builder palettes. It can also be used interactively from the F-Script interpreter to prototype applications. Finally, it can be used to explore applications' object hierarchies using an injector such as F-Script Anywhere.
Forks
The original F-script development by Philippe Mougin stopped at version 2.1 in 2011. Ilya Kulakov (Kentzo) took over the FScript.org website and updated the program to work with Mac OS X 10.7 through 10.10 until version 2.3 of 2014, building off Jonathan Mitchell's modernization work. Kulakov noted that as F-Script ties deeply into the system, the code must be changed to reflect the framework available in each Mac OS X release. The last update to this chain of work was done in 2018, by Wolfgang Baird, who updated F-Script to work with Mac OS X 10.12.
References
External links
*
*
F-Script Google Techtalk
{{Smalltalk programming language
Array programming languages
Class-based programming languages
Dynamically typed programming languages
Object-oriented programming languages
Scripting languages
Smalltalk programming language family