2013-04-10 1 views
7

기능 패러다임에서 기능은 기본 '제어 구조'입니다. 예를 들어, + 연산자도 함수로 취급되므로 다른 '객체'처럼 전달할 수 있습니다. 나는 장난감 기능 언어를 구현해야만한다면, 진정한 함수 (즉, 호출 가능한 루틴으로 +을 번역)로 간단한 함수를 구현하거나 번역 된 코드에 '인라인'으로 배치 될 일반 명령어로 변환 할 수 있는지 궁금합니다. 하지만 두 번째 전략을 사용하면, 나는 그들을 주위에 전달할 수 있고 부분적으로는 haskell과 같이 적용 할 수 있습니까? 함수 언어에서 중심 아이디어로 함수를 구현/번역하는 것에 대한 귀하의 생각은 무엇입니까?함수 프로그래밍 언어는 어떻게 구현합니까?

+0

나는 다음과 같이 상상할 수 있습니다. http://mitpress.mit.edu/sicp/ –

+0

두 번째 전략은 기능 상실로 알려져 있습니다. http://en.wikipedia.org/wiki/Defunctionalization –

+0

원한다면 처음부터 장난감 기능 언어를 구현하려면 여기에 조언을 따르는 것이 좋습니다. * http://research.microsoft.com/en-us/um/people/simonpj/Papers-pj-lester-book/ 원한다면 하스켈 실행 시간을 재사용하십시오. 여기서 시작하는 것이 좋습니다. * http://www.grabmueller.de/martin/www/pub/Transformers.en.html –

답변

0

나는 PJL 도서를 추천 할 수 있습니다. 필자는 (Prolog에서 1989-90 년에) 도움을 받아 컴파일러를 썼다.이 책은 주제에 대한 아주 좋은 소개이다.

날짜가 (1987 년, 30 년 전으로 기록되었을 수 있음) 여전히 기본 사항을 잘 다루고 있습니다. 그러나 Haskell과 같은 게으른 언어에 초점을 맞추고 있습니다. 당시 하스켈은 존재하지 않았고이 책은 이전 언어 인 LML이나 미란다를 사용하지만 언어는 매우 가깝습니다.

관련 문제