Arc (programovací jazyk) - Arc (programming language)

Oblouk
Paradigmata Multi-paradigma : funkční , meta , procedurální
Rodina Lisp
Navrhl Paul Graham
Vývojáři Paul Graham, Robert Morris, komunita
oblouku
Poprvé se objevil 29. ledna 2008 ; Před 13 lety  ( 2008-01-29 )
Stabilní uvolnění
3.2 / 28 října 2018 ; Před 2 roky  ( 2018-10-28 )
Psací disciplína Dynamický
Jazyk implementace Raketa
Plošina IA-32 , x86-64
OS Linux
Licence Umělecká licence 2.0
Přípony názvu souboru .oblouk
webová stránka arclanguage .org
Hlavní implementace
Oblouk, Anarki, Arcadia, Rainbow
Ovlivněno
Lisp , schéma

Arc je programovací jazyk , dialekt jazyka Lisp , který vyvinuli Paul Graham a Robert Morris . Je to bezplatný a open-source software vydaný pod uměleckou licencí 2.0.

Dějiny

V roce 2001 Paul Graham oznámil, že pracuje na novém dialektu Lispu s názvem Arc . Za ta léta napsal několik esejů popisujících vlastnosti nebo cíle jazyka a některé interní projekty v Grahamově startupovém podnikatelském inkubátoru s názvem Y Combinator byly napsány v Arcu, zejména webové fórum Hacker News a program agregátoru zpráv. Oblouk je napsán v raketě .

Motivy

V eseji Being Popular popisuje Graham několik svých cílů pro jazyk. I když je mnoho cílů velmi obecných („Arc by měl být hacknutelný“, „měly by existovat dobré knihovny “), uvedl určitá specifika. Například věří, že je důležité, aby byl jazyk strohý:

Nebylo by daleko od pravdy říci, že hacker, který se chystá napsat program, rozhoduje, jaký jazyk použít, alespoň podvědomě, na základě celkového počtu znaků, které bude muset psát. Pokud to není přesně to, co si hackeři myslí, jazykový designér by udělal, kdyby se choval, jako by to bylo.

Rovněž uvedl, že je lepší, aby jazyk implementoval pouze malý počet axiomů , i když to znamená, že jazyk nemusí mít funkce, které chtějí velké organizace, jako je objektová orientace (OO). Dále si Graham myslí, že OO není užitečný, protože jeho metody a vzory jsou jen „dobrým designem“, a jazykové vlastnosti použité k implementaci OO považuje za částečně mylné. Při představení společnosti Arc v roce 2008 Graham uvedl, že jednou z jejích výhod byla jeho stručnost.

Diskuse mezi programátory Lispu spočívá v tom, zda a do jaké míry by výrazy jazyka S měly být doplněny jinými formami syntaxe . Graham si myslí, že přidaná syntaxe by měla být použita v situacích, kdy by čisté s-výrazy byly příliš podrobné, a řekl: „Nemyslím si, že bychom měli být nábožensky proti zavedení syntaxe do Lispu.“ Graham si také myslí, že problémy s efektivitou by měly být vyřešeny tím, že programátor získá dobrý profiler .

Recepce

Když byl vydán v roce 2008, generoval Arc smíšené reakce, přičemž někteří jej nazývali jednoduše rozšířením Lisp nebo Scheme a nikoli programovacím jazykem samo o sobě. Jiní tleskali Arku za to, že Lispa svlékl na základní věci. Krátce po jeho vydání byl Arc portován na JavaScript a byl podporován Schemescriptem , integrovaným vývojovým prostředím (IDE) založeným na Eclipse .

Příklady

Hello world in Arc:

 (prn "Hello, World")

Pro ilustraci Arcovy stísněnosti používá Graham krátký program. Vytvoří formulář s jedním polem na adrese URL „/ said“. Když je formulář odeslán, vede na stránku s odkazem „klikněte sem“, který vede na stránku s hodnotou původního vstupního pole.

(defop said req
  (aform [onlink "click here" (pr "you said: " (arg _ "foo"))]
    (input "foo") 
    (submit)))

Verze

Oficiální verze

První veřejně vydaná verze Arc byla zpřístupněna 29. ledna 2008 a byla implementována na Racket (tehdy s názvem PLT-Scheme). Vydání přichází ve formě archivu .tar , který obsahuje zdrojový kód Racket pro Arc. K dispozici je také výukový program a diskusní fórum. Fórum používá stejný program jako Hacker News a je napsáno v oblouku.

Neoficiální verze

Kvůli nedostatku aktualizací v oficiální pobočce Arc založili někteří členové komunity Arc svá vlastní úložiště s neoficiálními úpravami, rozšířeními a knihovnami. Jedna verze, Anarki , umožnila komukoli odeslat změny do projektu a má wiki spravovanou komunitou.

Rainbow je implementace Arc v Javě .

Arcadia je implementace Arku v C .

Reference

externí odkazy