|
Factor is a dynamically typed concatenative programming language whose design and implementation is led by Slava Pestov. Factor's main influences are Joy, Forth, Lisp and Self. Current versions of Factor exist as Continuous Builds for supported platforms while version 1.0 is under developement[2]. A 1.0 release is planned in 2008. A programming paradigm is a fundamental style of computer programming. ...
For other uses, see Software developer (disambiguation). ...
Slava Pestov (b. ...
A software release refers to the creation and availability of a new version of a computer software product. ...
In computer science, a type system defines how a programming language classifies values and expressions into types, how it can manipulate those types and how they interact. ...
In computing, strongly-typed, when applied to a programming language, is used to describe how the language handles datatypes. ...
In computer science, a type system defines how a programming language classifies values and expressions into types, how it can manipulate those types and how they interact. ...
The Joy programming language is a purely functional programming language that was produced by Manfred von Thun of Latrobe University in Melbourne, Australia. ...
Forth is a structured imperative stack-based computer programming language and programming environment. ...
Lisp is a family of computer programming languages with a long history and a distinctive fully-parenthesized syntax. ...
This article or section does not cite its references or sources. ...
The Cat programming language is a functional stack-oriented programming language inspired by the Joy programming language. ...
An operating system (OS) is a software that manages computer resources and provides programmers with an interface used to access those resources. ...
Windows redirects here. ...
This article relates to both the original Classic Mac OS as well as Mac OS X, Apples more recent operating system. ...
This article is about operating systems that use the Linux kernel. ...
A software license is a legal agreement which may take the form of a proprietary or gratuitous license as well as a memorandum of contract between a producer and a user of computer software. ...
The BSD license is a permissive license and is one of the most widely used free software licenses. ...
A website (alternatively, web site or Web site) is a collection of Web pages, images, videos or other digital assets that is hosted on one or more web servers, usually accessible via the Internet. ...
In concatenative programming languages, the concatenation of appropriate programs denotes the composition of the functions which the programs denote. ...
A programming language is an artificial language that can be used to control the behavior of a machine, particularly a computer. ...
Slava Pestov (b. ...
The Joy programming language is a purely functional programming language that was produced by Manfred von Thun of Latrobe University in Melbourne, Australia. ...
Forth is a structured imperative stack-based computer programming language and programming environment. ...
Lisp is a family of computer programming languages with a long history and a distinctive fully-parenthesized syntax. ...
This article or section does not cite its references or sources. ...
Like other concatenative languages, Factor has a postfix syntax, meaning that you write the arguments of a function before its name. As an example, Hello world in Factor is In concatenative programming languages, the concatenation of appropriate programs denotes the composition of the functions which the programs denote. ...
Postfix notation is a mathematical notation wherein every operator follows all of its operands. ...
In computer science, a subroutine (function, method, procedure, or subprogram) is a portion of code within a larger program, which performs a specific task and can be relatively independent of the remaining code. ...
A hello world program is a computer program that prints out Hello, world! on a display device. ...
"Hello world" print Factor is dynamically typed, and a unique object system accompanies it. In Factor, there is a small group of base types, and users and the standard library can make their own classes using tuples and other mechanisms. Factor supports inheritance. Additionally, there are other ways to make classes other than types or tuples; Factor supports predicate classes and union classes. Factor's built-in compound datatypes include fixed and variable length vectors and hashtables. The language also supports floating point, and arbitrary precision integers. Linked lists, complex numbers and fractions are implemented in the standard library. In computer science, a type system defines how a programming language classifies values and expressions into types, how it can manipulate those types and how they interact. ...
Object-oriented programming (OOP) is a programming paradigm that uses objects and their interactions to design applications and computer programs. ...
In computer science, primitive types â as distinct from composite types â are data types provided by a programming language as basic building blocks. ...
In C++, the Standard Library is a collection of classes and functions, which are written in the core language. ...
In mathematics, a tuple is a finite sequence (also known as an ordered list) of objects, each of a specified type. ...
This article or section does not cite any references or sources. ...
In object-oriented programming, a class is a programming language construct used to group related fields and methods. ...
In computer science, a union is a data structure that stores one of several types of data at a single location. ...
For the DNA microarray in life sciences, see DNA microarray. ...
In computer science, a hash table is a data structure that speeds up searching for information by a particular aspect of that information, called a key. ...
A floating-point number is a digital representation for a number in a certain subset of the rational numbers, and is often used to approximate an arbitrary real number on a computer. ...
On a computer, arbitrary-precision arithmetic, also called bignum arithmetic, is a technique that allows computer programs to perform calculations on integers or rational numbers (including floating-point numbers) with an arbitrary number of digits of precision, typically limited only by the available memory of the host system. ...
In computer science, a linked list is one of the fundamental data structures, and can be used to implement other data structures. ...
A complex number can be visually represented as a pair of numbers forming a vector on a diagram called an Argand diagram In mathematics, the complex numbers are the extension of the real numbers obtained by adjoining an imaginary unit, denoted i, which satisfies:[1] Every complex number can be...
In common usage a fraction is any part of a unit. ...
Factor was originally only interpreted, but is now fully compiled (the non-optimizing compiler basically unrolls the interpreter loop[1][2]). The optimizing machine code compiler is written entirely in Factor. It does not output standalone executables, but rather generates machine code which is saved in the image. This image can then be deployed with the deploy-tool which produces a minimal tree shaken image along with the VM. Interpretation, or interpreting, is an activity that consists of establishing, either simultaneously or consecutively, oral or gestural communications between two or more speakers who are not speaking (or signing) the same language. ...
A compiler is a computer program that translates a computer program written in one computer language (called the source language) into an equivalent program written in another computer language (called the output or the target language). ...
Machine code or machine language is a system of instructions and data directly executed by a computers central processing unit. ...
For other uses, see Small talk. ...
When using the stack system does not suffice, lexical and dynamic scoping are supported alternatives. Factor has a growing library which supports vocabularies, continuations, an HTTP server and accompanying web framework, an OpenGL binding, a GUI library, an XML parser, and several other utilities. In computer programming, scope is an enclosing context where values and expressions are associated. ...
This article or section should be merged with scope (programming) Dynamic variable scoping is when you scope a variable in a programming language by replacing the existing variable of that name with a new variable temporarily, for instance for the duration of a function call. ...
Modularity is a concept that has applications in the contexts of computer science, particularly programming, as well as cognitive science in investigating the structure of mind. ...
In computing, a continuation is a representation of some of the execution state of a program (often the call stack and the current Instruction pointer) at a certain point. ...
The inside/front of a Dell PowerEdge web server The term Web server can mean one of two things: A computer program that is responsible for accepting HTTP requests from clients, which are known as Web browsers, and serving them HTTP responses along with optional data contents, which usually are...
OpenGL (Open Graphics Library) is a standard specification defining a cross-language cross-platform API for writing applications that produce 2D and 3D computer graphics. ...
GUI can refer to the following: GUI is short for graphical user interface, a term used to describe a type of interface in computing. ...
The Extensible Markup Language (XML) is a general-purpose markup language. ...
One of Factor's main goals is to be useful for interactive and test-driven development, which is why Factor is, at its core, a safe version of Forth. Factor is dynamically typed, but the compiler assesses the stack depth of words (functions). Test-Driven Development (TDD) is a software development technique consisting of short iterations where new test cases covering the desired improvement or new functionality are written first, then the production code necessary to pass the tests is implemented, and finally the software is refactored to accommodate the changes. ...
Lisp Like Features
Factor shares a lot of features with Lisp, including a homoiconic syntax, garbage collection, HOFs, compile-time evaluation, REPL, treeshaker, etc. Lisp is a family of computer programming languages with a long history and a distinctive fully-parenthesized syntax. ...
In computer programming, homoiconicity is a property of some programming languages, in which the primary representation of programs is also a data structure in a primitive type of the language itself, from homo meaning the same and icon meaning representation. ...
Garbage collection can refer to two different things: Garbage collection (computer science): an automatic way of reclaiming unused storage; Civic garbage collection: waste management. ...
In mathematics and computer science, higher-order functions are functions which can take other functions as arguments, and may also return functions as results. ...
A read-eval-print loop (REPL) is a simple, interactive computer programming environment. ...
Unlike Lisp, function composition proceeds left to right rather than: Lisp is a family of computer programming languages with a long history and a distinctive fully-parenthesized syntax. ...
(languages (applicative (in (backwards (is (composition (function)))))))[3] or (loop (print (eval (read))))[4] you would write instead [ read eval print ] loop[5] This is an inherent feature in concatenative languages. In concatenative programming languages, the concatenation of appropriate programs denotes the composition of the functions which the programs denote. ...
Concurrency Support Factor's concurrency support was insipired by Erlang, Termite, Scheme48 and Java's java.util.concurrent library including basic Lightweight co-operative threads, to advanced libraries supporting Promises/Futures, Mailboxes and Message-passing concurrency. A thread in computer science is short for a thread of execution. ...
In computer programming, a promise (also known as a future in some languages) is a placeholder for a result that is not yet known, usually because a computation has not yet finished or a message from a remote party has not yet arrived. ...
In inter-process communication Mailbox is a software-engineering component. ...
In computer science, message passing is a form of communication used in concurrent programming, parallel programming, object-oriented programming, and interprocess communication. ...
Implementations So far, both Java and C implementations have been constructed. The Java implementation is deprecated and no longer maintained. The native runtime of the C version is continually shrinking as an increasing proportion of Factor is self-hosted. However, there will likely always be a portion of Factor written in C. Java language redirects here. ...
In computing, C is a general-purpose, block structured, procedural, imperative computer programming language developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system. ...
Self-hosting refers to the use of a computer program as part of the toolchain or operating system that produces new versions of that same programâfor example, a compiler that can compile its own source code. ...
Though Factor does not adhere to an external standard the way C does, the language is heavily documented.
External links - Factor website
- Get Factor
- Getting started with Factor - Easy FFI
- The birth of Factor
- Factor mailing list
- Logs of #concatenative on freenode, an IRC channel which mainly discusses Factor
- Factor documentation
- planet-factor (a feed aggregator)
- Git development repository
The title of this article should be freenode. ...
Internet Relay Chat (IRC) is a form of instant communication over the Internet. ...
In computing, a feed aggregator, also known as a feed reader, news reader or simply as an aggregator, is client software or a Web application which aggregates syndicated web content such as news headlines, blogs, podcasts, and vlogs in a single location for easy viewing. ...
References - ^ Factor: a practical stack language: Two-tier compilation comes to Factor
- ^ Factor: a practical stack language: Compiler overhaul
- ^ Slava Pestov, reddit comment
- ^ Read-eval-print loop, Implementation
- ^ pjdelport, reddit comment
A read-eval-print loop (REPL) is a simple, interactive computer programming environment. ...
|