2014-04-24 4 views
3

SICP 섹션 2.2.4에서는 복잡한 이미지 패턴을 만들기위한 작은 "그림 언어"를 설명합니다. 언어는 주어진 프레임 내에 이미지를 그리는 단일 프리미티브 painter을 정의하고 painters을 변형 및 결합하여 새로운 painter을 생성하는 함수입니다.SICP의 "그림 언어"와 비슷한 언어가 거의 없습니다.

나는이 예제를 좋아하고 이러한 언어의 예제를 더보고 싶습니다 (바람직하게는 Scheme). 나는 시스템/비즈니스 도메인을위한 언어를 퍼퍼 할 것이다. 그런 작은 언어들에 대해 알고 있습니까?

+0

[로고] (http://www.calormen.com/jslogo/)에 대해 들어 보셨습니까? –

+0

아니, 고마워. 나는 한번 살펴 보겠다. – Michael

+1

로고는 6 세 아이들에게 프로그래밍 방법을 가르치는 데 사용되는 프로그래밍 언어입니다. 거북이 그래픽을 사용합니다. 예를 들어 정사각형을 그리려면'x' 단위를 앞으로 돌리고 90도 오른쪽으로 돌리면 4 배가됩니다. 또한 거북이에게 새로운 명령 (즉, 정의 기능)을 가르치는 방법을 가르침으로써 어린이 추상화를 가르칩니다. 예를 들어, 거북이가 정사각형과 삼각형을 그리고 그 거북이가 집을 그리게하는 함수를 사용하도록 함수를 정의 할 수 있습니다. 또한 Logo는 Lisp과 매우 유사합니다. Seymour Papert가 MIT에 재학하는 동안 제작되었습니다. 그게 도움이 되니? –

답변

1

어떤 크기의 모든 잘 설계된 프로그램에는 하나 이상의 '그림 언어'가 있습니다. 예제를 찾으려면 MIT Scheme 또는 Schemers.org

2

Domain-specific languages 또는 DSL이라고도하는 이러한 "작은"언어를 사용해보십시오. 널리 사용되는 프로그래밍 패러다임이지만 장점과 단점이 있습니다.

예를 들어 Zillions of Games이라고하는 상용 게임 시스템이 있습니다. S-expressions을 사용하기 때문에 Lisp을 알고 있으면 구문이 매우 익숙해 보입니다. 실제로 모든 게임 스크립팅 언어는 DSL입니다.

웹 개발자 인 경우 템플릿 언어를 자주 다루는 경우가 많습니다. 또한 템플릿 언어를 도메인 관련 언어로 생각할 수도 있습니다. 일부는 사용자 정의 템플릿 태그를 통해 Django template language처럼 확장 될 수 있습니다.

현재 일반적인 프로그래밍 언어 중 일부는 처음에는 도메인 특정 언어로 개발되었습니다. 예를 들어 Erlang은 처음에는 Ericsson에서 전화 통신 응용 프로그램 용으로 설계되었습니다.