HOME

TheInfoList



OR:

Arc is a
programming language A programming language is a system of notation for writing computer programs. Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
, a
dialect A dialect is a Variety (linguistics), variety of language spoken by a particular group of people. This may include dominant and standard language, standardized varieties as well as Vernacular language, vernacular, unwritten, or non-standardize ...
of the language
Lisp Lisp (historically LISP, an abbreviation of "list processing") is a family of programming languages with a long history and a distinctive, fully parenthesized Polish notation#Explanation, prefix notation. Originally specified in the late 1950s, ...
, developed by Paul Graham and Robert Morris. It is
free and open-source software Free and open-source software (FOSS) is software available under a license that grants users the right to use, modify, and distribute the software modified or not to everyone free of charge. FOSS is an inclusive umbrella term encompassing free ...
released under the
Artistic License Artistic license (and more general or contextually-specific, derivative terms such as creative license, poetic license, historical license, dramatic license, and narrative license) refers to deviation from fact or form for artistic purposes. It ...
2.0.


History

In 2001, Paul Graham announced that he was working on a new
dialect A dialect is a Variety (linguistics), variety of language spoken by a particular group of people. This may include dominant and standard language, standardized varieties as well as Vernacular language, vernacular, unwritten, or non-standardize ...
of Lisp named ''Arc''. Over the years since, he has written several essays describing features or goals of the language, and some internal projects at Graham's startup business incubator named
Y Combinator Y Combinator, LLC (YC) is an American technology startup accelerator and venture capital firm launched in March 2005 which has been used to launch more than 5,000 companies. The accelerator program started in Boston and Mountain View, Californi ...
have been written in Arc, most notably the Hacker News web forum and news aggregator program. Arc is written in Racket.


Motives

In the essay ''Being Popular'' Graham describes a few of his goals for the language. While many of the goals are very general ("Arc should be hackable", "there should be good
libraries A library is a collection of Book, books, and possibly other Document, materials and Media (communication), media, that is accessible for use by its members and members of allied institutions. Libraries provide physical (hard copies) or electron ...
"), he did give some specifics. For example, he believes it is important for a language to be terse: He also stated that it is better for a language to only implement a small number of ''axioms'', even when that means the language may not have features that large organizations want, such as object-orientation (OO). Further, Graham thinks that OO is not useful as its methods and patterns are just "good design", and he views the language features used to implement OO as partly mistaken. At Arc's introduction in 2008, Graham stated one of its benefits was its brevity. A controversy among Lisp programmers is whether, and how much, the
s-expression In computer programming, an S-expression (or symbolic expression, abbreviated as sexpr or sexp) is an expression in a like-named notation for nested List (computing), list (Tree (data structure), tree-structured) data. S-expressions were invented ...
s of the language should be complemented by other forms of
syntax In linguistics, syntax ( ) is the study of how words and morphemes combine to form larger units such as phrases and sentences. Central concerns of syntax include word order, grammatical relations, hierarchical sentence structure (constituenc ...
. Graham thinks that added syntax should be used in situations where pure s-expressions would be overly verbose, saying, "I don't think we should be religiously opposed to introducing syntax into Lisp." Graham also thinks that efficiency problems should be solved by giving the programmer a good profiler.


Reception

When released in 2008, Arc generated mixed reactions, with some calling it simply an extension to Lisp or Scheme and not a programming language in its own right. Others applauded Arc for stripping Lisp down to bare essentials. Shortly after its release, Arc was ported to
JavaScript JavaScript (), often abbreviated as JS, is a programming language and core technology of the World Wide Web, alongside HTML and CSS. Ninety-nine percent of websites use JavaScript on the client side for webpage behavior. Web browsers have ...
, and was being supported by ''Schemescript'', an
integrated development environment An integrated development environment (IDE) is a Application software, software application that provides comprehensive facilities for software development. An IDE normally consists of at least a source-code editor, build automation tools, an ...
(IDE) based on
Eclipse An eclipse is an astronomical event which occurs when an astronomical object or spacecraft is temporarily obscured, by passing into the shadow of another body or by having another body pass between it and the viewer. This alignment of three ...
.


Examples

Hello world in Arc : (prn "Hello, World") To illustrate Arc's terseness, Graham uses a brief program. It produces a form with one field at the url "/said". When the form is submitted, it leads to a page with a link that says "click here", which then leads to a page with the value of the original input field. (defop said req (aform nlink "click here" (pr "you said: " (arg _ "foo")) (input "foo") (submit)))


Versions


Official version

The first publicly released version of Arc was made available on 29 January 2008, implemented on Racket (named PLT-Scheme then). The release comes in the form of a .tar archive, containing the Racket
source code In computing, source code, or simply code or source, is a plain text computer program written in a programming language. A programmer writes the human readable source code to control the behavior of a computer. Since a computer, at base, only ...
for Arc. A tutorial and a discussion forum are also available. The forum uses the same program that Hacker News does, and is written in Arc.


Unofficial versions

Due to lack of updates in the official Arc branch, some members of the Arc
community A community is a social unit (a group of people) with a shared socially-significant characteristic, such as place, set of norms, culture, religion, values, customs, or identity. Communities may share a sense of place situated in a given g ...
started their own repositories with unofficial modifications, extensions, and libraries. One version, ''Anarki'', permitted anyone to submit changes to the project and has a community managed wiki. ''Rainbow'' is an implementation of Arc in
Java Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
. ''Arcadia'' is an implementation of Arc in C. ''Arc++'' is an implementation of Arc in C++.


Timeline of LISP Dialects


References


External links

*
Tutorial
* {{Lisp programming language Dynamically typed programming languages Functional languages Lisp programming language family Cross-platform free software