Arco (lenguaje de programación)
Arc es un lenguaje de programación, un dialecto del lenguaje Lisp, desarrollado por Paul Graham y Robert Morris. Es un software gratuito y de código abierto lanzado bajo la Licencia Artística 2.0.
Historia
En 2001, Paul Graham anunció que estaba trabajando en un nuevo dialecto de Lisp llamado Arc. A lo largo de los años, ha escrito varios ensayos que describen las características o los objetivos del lenguaje, y algunos proyectos internos en la incubadora de empresas emergentes de Graham llamada Y Combinator se han escrito en Arc, sobre todo el foro web Hacker News y el agregador de noticias. programa. Arc está escrito en Raqueta.
1958 | 1960 | 1965 | 1970 | 1975 | 1980 | 1985 | 1990 | 1995 | 2000 | 2005 | 2010 | 2015 | 2020 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
LISP 1, 1,5, LISP 2(abandonado) | ||||||||||||||
Maclisp | ||||||||||||||
Interlisp | ||||||||||||||
MDL | ||||||||||||||
Lisp Machine Lisp | ||||||||||||||
Plan | R5RS | R6RS | R7RS pequeño | |||||||||||
NIL | ||||||||||||||
ZIL (Zork Implementation Language) | ||||||||||||||
Franz Lisp | ||||||||||||||
Lisp común | ANSI standard | |||||||||||||
Le Lisp | ||||||||||||||
MIT Plan | ||||||||||||||
T | ||||||||||||||
Chez Scheme | ||||||||||||||
Emacs Lisp | ||||||||||||||
AutoLISP | ||||||||||||||
PicoLisp | ||||||||||||||
Gambit | ||||||||||||||
EuLisp | ||||||||||||||
ISLISP | ||||||||||||||
OpenLisp | ||||||||||||||
PLT Plan | Racket | |||||||||||||
GNU Guile | ||||||||||||||
Visual LISP | ||||||||||||||
Clojure | ||||||||||||||
Arc | ||||||||||||||
LFE | ||||||||||||||
Hy |
Motivos
En el ensayo Ser popular, Graham describe algunos de sus objetivos para el idioma. Si bien muchos de los objetivos son muy generales ("Arc debería ser pirateable", "debería haber buenas bibliotecas"), dio algunos detalles. Por ejemplo, cree que es importante que un idioma sea conciso:
No estaría lejos de la verdad decir que un hacker a punto de escribir un programa decide qué idioma utilizar, al menos subconscientemente, basado en el número total de caracteres que tendrá que escribir. Si esto no es precisamente lo que piensan los hackers, un diseñador de lenguaje haría bien para actuar como si fuera así.
También afirmó que es mejor que un lenguaje solo implemente una pequeña cantidad de axiomas, incluso cuando eso signifique que el lenguaje puede no tener las características que las grandes organizaciones desean, como la orientación a objetos (OO). Además, Graham piensa que OO no es útil ya que sus métodos y patrones son simplemente 'buen diseño', y considera que las características del lenguaje utilizadas para implementar OO están parcialmente equivocadas. En la presentación de Arc en 2008, Graham afirmó que uno de sus beneficios era su brevedad.
Una controversia entre los programadores de Lisp es si, y en qué medida, las expresiones s del lenguaje deben complementarse con otras formas de sintaxis. Graham cree que la sintaxis añadida debería usarse en situaciones en las que las expresiones s puras serían demasiado detalladas y dirían: "No creo que debamos oponernos religiosamente a la introducción de la sintaxis en Lisp". Graham también piensa que los problemas de eficiencia deberían resolverse dándole al programador un buen generador de perfiles.
Recepción
Cuando se lanzó en 2008, Arc generó reacciones encontradas, algunos lo llamaron simplemente una extensión de Lisp o Scheme y no un lenguaje de programación por derecho propio. Otros aplaudieron a Arc por reducir a Lisp a lo esencial. Poco después de su lanzamiento, Arc fue portado a JavaScript y estaba siendo soportado por Schemescript, un entorno de desarrollo integrado (IDE) basado en Eclipse.
Ejemplos
Hola mundo en Arc:
()prn "Hola, Mundo")
Para ilustrar la brevedad de Arc, Graham usa un programa breve. Produce un formulario con un campo en la URL "/dicho". Cuando se envía el formulario, conduce a una página con un enlace que dice "haga clic aquí", que luego conduce a una página con el valor del campo de entrada original.
()defop dijo: req ()aform [onlink] "Haz clic aquí" ()pr "Dijiste: " ()arg ¿Qué? "foo")] ()entrada "foo") ()presentar))
Versiones
Versión oficial
La primera versión pública de Arc estuvo disponible el 29 de enero de 2008, implementada en Racket (entonces llamado PLT-Scheme). El lanzamiento viene en forma de un archivo.tar, que contiene el código fuente de Racket para Arc. También están disponibles un tutorial y un foro de discusión. El foro usa el mismo programa que Hacker News y está escrito en Arc.
Versiones no oficiales
Debido a la falta de actualizaciones en la rama oficial de Arc, algunos miembros de la comunidad de Arc comenzaron sus propios repositorios con modificaciones, extensiones y bibliotecas no oficiales. Una versión, Anarki, permitía a cualquiera enviar cambios al proyecto y tiene un wiki administrado por la comunidad.
Rainbow es una implementación de Arc en Java.
Arcadia es una implementación de Arc en C.
Contenido relacionado
Cifrado Feistel
Problema del barbero durmiendo
Código enhebrado