호(프로그래밍 언어)

Arc (programming language)
패러다임멀티패러다임: 기능, 메타, 프로시저
가족리스프
설계자폴 그레이엄
개발자폴 그레이엄, 로버트 모리스
커뮤니티
처음 등장한2008년 1월 29일, 14년 전(2008-01-29)
안정된 릴리스
3.2 / 2018년 10월 28일, 3년 전(2018-10-28)[1]
타이핑 분야역학
구현 언어라켓
플랫폼IA-32, x86-64
OS리눅스
면허증.Artistic License 2.0
파일 이름 확장자.disclosed(비활성화)
웹 사이트arclanguage.org
주요 구현
아크, 아나키, 아카디아, 레인보우
영향을 받다
리스프, 스킴

아크는 폴 그레이엄로버트 모리스에 의해 개발된 리스프 언어의 방언프로그래밍 언어이다.Artistic License 2.0에 따라 출시된 무료 오픈 소스 소프트웨어입니다.

역사

2001년, 폴 그레이엄은 아크라는 이름의 리스프의 새로운 사투리를 연구하고 있다고 발표했다.이후 수년간 그는 언어의 특징이나 목표를 설명하는 에세이를 여러 편 썼으며, Graham의 스타트업 비즈니스 인큐베이터인 Y Combinator의 일부 내부 프로젝트, 특히 Hacker News 웹 포럼과 뉴스 애그리게이터 프로그램이 Arc로 작성되었습니다.호는 [2]라켓으로 표기되어 있습니다.

1955 1960 1965 1970 1975 1980 1985 1990 1995 2000 2005 2010 2015 2020
LISP 1, 1.5, LISP 2(abandoned)
마클리스프
인터리스크
MDL
리스프 기계 리스프
스킴 R5RS R6RS R7RS 소형
없음
ZIL(Zork 구현 언어)
프란츠 리스프
일반적인 리스프
르 리스프
MIT 스킴
T
체즈 스킴
Emacs 리스프
자동 LISP
피코리스프
EuLisp
ISLISP
오픈리스프
PLT 방식 라켓
GNU Guile
비주얼 LISP
클로쥬르
LFE
하이

동기

에세이 "인기롭게[3] 되기"에서 Graham은 언어에 대한 그의 목표 중 몇 가지를 설명한다.목표의 대부분은 매우 일반적이지만("Arc는 해킹이 가능해야 한다", "좋은 도서관이 있어야 한다"), 그는 몇 가지 세부사항을 말했다.예를 들어, 그는 언어가 간결해야 한다고 생각합니다.

프로그램을 작성하려는 해커가 적어도 무의식적으로 자신이 입력해야 할 총 글자 수에 따라 어떤 언어를 사용할지 결정한다고 해도 사실과 크게 다르지 않을 것이다.만약 이것이 해커들이 정확히 생각하는 방식이 아니라면, 언어 디자이너는 마치 그런 것처럼 행동하는 것이 좋을 것이다.

그는 또한 언어가 객체 지향(OO)과 같이 대규모 조직이 원하는 기능을 가지고 있지 않을 수 있다는 것을 의미하더라도 적은 수의 공리만을 구현하는 것이 더 낫다고 말했다.또한, Graham은 OO의 방법이나 패턴이 '좋은 디자인'일 뿐이므로 유용하지 않다고 생각하고, OO를 구현하기 위해 사용하는 언어 특징을 부분적으로 [4][5]잘못 알고 있습니다.2008년 Arc의 소개에서 Graham은 그 장점 중 하나가 [6]간결하다는 것이라고 말했다.

Lisp 프로그래머들 사이의 논쟁은 언어의 s-표현이 다른 형태의 구문으로 보완되어야 하는지 여부와 그 양이다.Graham은 "Lisp에 구문을 도입하는 것을 종교적으로 반대해서는 안 된다고 생각한다"며 순수한 s표현이 지나치게 장황한 상황에서 구문을 추가해야 한다고 생각한다.Graham은 또한 프로그래머에게 훌륭한 [7]프로파일러를 제공함으로써 효율성 문제를 해결해야 한다고 생각한다.

접수처

2008년에 발매되었을 때, Arc는 단지 Lisp 또는 Scheme의 확장일 뿐, 그 자체로 프로그래밍 언어는 아니라고 말하는 등, 엇갈린 반응을 보였습니다.다른 이들은 아크 감독이 리스프를 필수품까지 모두 벗긴 것에 박수를 보냈다.출시 직후, Arc는 JavaScript로 이식되어 [8]Eclipse 기반의 통합 개발 환경(IDE)인 Schemescript에서 지원되었습니다.

Hello world in Arc:

 (인식하다 "안녕하세요, 월드") 

Arc의 간결함을 설명하기 위해 Graham은 간단한 프로그램을 사용합니다.URL "/said"에 필드 하나가 있는 폼을 생성합니다.양식이 제출되면 "여기를 클릭"하는 링크가 있는 페이지로 이어지며, 이 페이지는 원래 입력 [9]필드의 값을 가진 페이지로 이어집니다.

(디폴 말했습니다 요구하다   (불타기 [온링크] "여기를 클릭" (pr "당신이 말했다:" (arg _ "푸"))]     (입력 "푸")      (제출하다))) 

버전

공식 버전

Arc의 첫 공개 버전은 2008년 [10]1월 29일에 제공되었으며, 라켓에서 구현되었다(당시 PLT-Scheme로 명명되었다).릴리스는 Arc의 Racket 소스 코드를 포함하는 .tar 아카이브 형식으로 제공됩니다.튜토리얼과 토론[12] 포럼도 이용할[11] 수 있습니다.포럼은 Hacker News와 동일한 프로그램을 사용하며 Arc로 작성됩니다.

비공식 버전

공식 Arc 분기의 업데이트 부족으로 인해 Arc 커뮤니티의 일부 구성원은 비공식 수정, 확장 및 라이브러리를 사용하여 자체 저장소를 시작했습니다.Anarki [13]버전에서는 누구나[14] 프로젝트 변경 내용을 제출할 수 있으며 커뮤니티 관리 [15]Wiki가 있습니다.

Rainbow는 Java에서 Arc를 구현한 입니다[16].

Arcadia[17] C에서 Arc를 구현한 것입니다.

레퍼런스

  1. ^ "Arc Forum: Tell Arc: Arc 3.2". Arclanguage.org. Retrieved 2018-11-07.
  2. ^ "Arc Forum: install". Arclanguage.org. Retrieved 2018-11-07.
  3. ^ Graham, Paul (May 2001). "Being Popular". PaulGraham.com. Retrieved 2018-12-05.
  4. ^ Graham, Paul. "Why Arc Isn't Especially Object-Oriented". PaulGraham.com. Retrieved 2018-12-05.
  5. ^ Graham, Paul. "Arc FAQ". PaulGraham.com. Retrieved 2018-12-05.
  6. ^ Huber, Mathias (2008-02-08). "Arc Makes Programs Shorter". Linux Magazine. Lawrence, Kansas: Linux New Media USA. Retrieved 2018-11-25.
  7. ^ Graham, Paul (May 2001). "Five Questions About Language Design". PaulGraham.com. Retrieved 2018-12-05.
  8. ^ "Web pioneer hits critics with Lisp gauntlet". The Register. UK. 2008-02-07.
  9. ^ Graham, Paul (February 2008). "Take the Arc Challenge". PaulGraham.com. Retrieved 2018-12-05.
  10. ^ Graham, Paul (29 January 2008). "Arc's Out". PaulGraham.com. Retrieved 2018-12-05.
  11. ^ 를 클릭합니다"Arc Tutorial". Paul Graham. Retrieved 2018-12-05..
  12. ^ "Arc Forum". Arc language.
  13. ^ Rapp, Kenneth (kennethrapp) (14 November 2018). "Anarki". GitHub. Retrieved 2018-12-05.
  14. ^ Agaram, Kartik (akkartik) (27 May 2013). "Announcement: anarki is no longer world-committable". Arc Forum. Arc language. Retrieved 2018-12-05.
  15. ^ "Arc Lang Wiki". Sites. Retrieved 2018-12-05.
  16. ^ Dalton, Conan (conanite) (12 October 2010). "Rainbow". GitHub. Retrieved 2018-12-05.
  17. ^ Kim, Taegyoon (kimtg) (19 August 2018). "Arcadia". GitHub. Retrieved 2018-12-05.

외부 링크