Arc (Programmiersprache) - Arc (programming language)

Bogen
Paradigmen Multi-Paradigma : funktional , meta , prozedural
Familie Lispeln
Entworfen von Paul Graham
Entwickler Paul Graham, Robert Morris,
Arc- Community
Erstmals erschienen 29. Januar 2008 ; vor 13 Jahren  ( 29.01.2008 )
Stabile Version
3.2 / 28. Oktober 2018 ; vor 2 Jahren  ( 28.10.2018 )
Schreibdisziplin Dynamisch
Implementierungssprache Schläger
Plattform IA-32 , x86-64
Betriebssystem Linux
Lizenz Künstlerische Lizenz 2.0
Dateinamenerweiterungen .Bogen
Webseite arclanguage .org
Wichtige Implementierungen
Bogen, Anarki, Arkadien, Regenbogen
Beeinflusst von
Lisp , Schema

Arc ist eine Programmiersprache , ein Dialekt der Sprache Lisp , die von Paul Graham und Robert Morris entwickelt wurde . Es handelt sich um kostenlose Open-Source-Software, die unter der Artistic License 2.0 veröffentlicht wurde.

Geschichte

Im Jahr 2001 gab Paul Graham bekannt, dass er an einem neuen Lisp- Dialekt namens Arc arbeite . Im Laufe der Jahre , da er mehrere Aufsätze beschreiben Funktionen oder Ziele der Sprache, und einige interne Projekte in Grahams geschrieben hat Startup Business - Inkubator namens Y Combinator wurden geschrieben in Arc, vor allem die Hacker News Web - Forum und News - Aggregator - Programm. Arc ist in Racket geschrieben .

Motive

In dem Aufsatz Being Popular beschreibt Graham einige seiner Ziele für die Sprache. Während viele der Ziele sehr allgemein sind ("Arc sollte hackbar sein", "es sollte gute Bibliotheken geben "), gab er einige Details an . Zum Beispiel hält er es für wichtig, dass eine Sprache knapp ist:

Es wäre nicht weit von der Wahrheit entfernt zu sagen, dass ein Hacker, der gerade ein Programm schreibt, entscheidet, welche Sprache er zumindest unbewusst verwenden soll, basierend auf der Gesamtzahl der Zeichen, die er eingeben muss. Wenn Hacker nicht genau so denken, würde ein Sprachdesigner gut daran tun, so zu handeln, als ob es so wäre.

Er erklärte auch, dass es für eine Sprache besser sei, nur eine kleine Anzahl von Axiomen zu implementieren , selbst wenn dies bedeutet, dass die Sprache möglicherweise keine Funktionen aufweist, die große Organisationen wünschen, wie z. B. Objektorientierung (OO). Darüber hinaus ist Graham der Ansicht, dass OO nicht nützlich ist, da seine Methoden und Muster nur "gutes Design" sind, und er betrachtet die zur Implementierung von OO verwendeten Sprachfunktionen als teilweise falsch. Bei der Einführung von Arc im Jahr 2008 erklärte Graham, einer seiner Vorteile sei seine Kürze.

Eine Kontroverse unter Lisp-Programmierern ist, ob und wie viel die S-Ausdrücke der Sprache durch andere Formen der Syntax ergänzt werden sollten . Graham ist der Meinung, dass zusätzliche Syntax in Situationen verwendet werden sollte, in denen reine S-Ausdrücke zu ausführlich sind, und sagt: "Ich denke nicht, dass wir religiös gegen die Einführung von Syntax in Lisp sein sollten." Graham ist auch der Meinung, dass Effizienzprobleme gelöst werden sollten, indem dem Programmierer ein guter Profiler zur Verfügung gestellt wird .

Rezeption

Bei der Veröffentlichung im Jahr 2008 löste Arc gemischte Reaktionen aus. Einige nannten es einfach eine Erweiterung von Lisp oder Scheme und keine eigenständige Programmiersprache. Andere applaudierten Arc dafür, dass er Lisp auf das Nötigste reduziert hatte. Kurz nach seiner Veröffentlichung wurde Arc auf JavaScript portiert und von Schemescript , einer auf Eclipse basierenden integrierten Entwicklungsumgebung (IDE) , unterstützt .

Beispiele

Hallo Welt in Arc:

 (prn "Hello, World")

Um die Knappheit von Arc zu veranschaulichen, verwendet Graham ein kurzes Programm. Es wird ein Formular mit einem Feld unter der URL "/ said" erstellt. Wenn das Formular gesendet wird, führt es zu einer Seite mit einem Link mit der Aufschrift "hier klicken", die dann zu einer Seite mit dem Wert des ursprünglichen Eingabefelds führt.

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

Versionen

Offizielle Version

Die erste öffentlich veröffentlichte Version von Arc wurde am 29. Januar 2008 zur Verfügung gestellt und auf Racket (damals PLT-Scheme genannt) implementiert . Die Version wird in Form eines .tar- Archivs geliefert , das den Racket- Quellcode für Arc enthält. Ein Tutorial und ein Diskussionsforum sind ebenfalls verfügbar. Das Forum verwendet dasselbe Programm wie Hacker News und ist in Arc geschrieben.

Inoffizielle Versionen

Aufgrund fehlender Aktualisierungen im offiziellen Arc-Zweig haben einige Mitglieder der Arc- Community ihre eigenen Repositorys mit inoffiziellen Änderungen, Erweiterungen und Bibliotheken eingerichtet. Eine Version, Anarki , erlaubte jedem, Änderungen am Projekt einzureichen, und verfügt über ein von der Community verwaltetes Wiki.

Rainbow ist eine Implementierung von Arc in Java .

Arcadia ist eine Implementierung von Arc in C .

Verweise

Externe Links