2012-01-15 7 views
0

나는 맞춤식 언어 작성의 새로운 글입니다. Flex로 다이빙하기 전, Bison 기반의 Lexers, Parsers, Compilers 일주일 후에 어쩌면 연구를 시작하기 전에 가능한지 물어보고 싶습니다. 불가능하다고 생각할 것입니다. 이 코드는 임베디드 플랫폼으로 가고 일반 언어와 다르게 컴파일해야하기 때문에 머신 코드가 컴파일 될 때까지 C 언어로 변환되지 않는 간단한 스크립팅 언어를 작성하는 것이 내 목표입니다. 필자의 스크립트 -> 파서 (Parser)는 규칙을 기반으로 C 코드로 코드를 변환하여 임베디드 머신 코드로 컴파일합니다.사용자 지정 스크립팅 언어

어쩌면 누군가가 나에게이 작업을 제안 할 수 있습니다. 현재 플렉스에 대해 읽고 있습니다. & 기계 코드로 컴파일 된 Bison 기반 사용자 정의 언어가 있지만 이것이 필요하지 않다고 생각합니다.

답변

3

도메인 관련 언어과 관련된 몇 가지 자료를 읽을 수 있습니다. DSL2011 및 이전 절차.

렉싱 및 구문 분석에 그다지 집중하지 마십시오. 대부분의 작업과 쟁점들은 언어 의미론과 구현을 정의하는 데 있습니다.

DSL을 C로 변환하는 것은 쉬운 일이 아닙니다. 예를 들어 내 DSL2011 paper on MELT을 참조하십시오.

언어 의미 및 화용론에 대한 좋은 책을 읽습니다. Programming Language Pragmatics (스콧)

Garbage Collection Handbook (Jones, Hosking, Moss)도 읽으십시오. 마침내

는 특히 렉싱과 구문 분석 작업에서 가장 쉬운 일이 있음을 유의 C.

을 동적으로 입력 된 언어를 번역 커버 C.Queinnec Lisp in Small Pieces의 일부 버전을 읽어 보시기 바랍니다.

기존 스크립팅 언어를 다음과 같이 삽입하는 것을 고려 했습니까? Parrot 또는 nekovm

같은 lua, python 또는 guile 또는 사용하여 기존 VM은 여러 가지 특정 영역 또는 스크립팅이나 프로그래밍 언어를 공부하는 것을 잊지 마십시오. 당신은 하나 이상의 것을 알 필요가 있습니다!

구현을 소스 형식으로 자유롭게 사용할 것을 강력히 제안합니다. 사용자를 새로운 DSL에 끌어들이는 것은 매우 어렵습니다. 무료 구현을 제공하면 장벽이 낮아집니다.

+0

정말 고마워요. 제가 검색 한 것 같아요. –

+0

당신이 대답을 받아 들였지만 그것을 평가하지 않은 것은 이상합니다! –

+0

사용자는 15 명의 담당자가있을 때까지 upvote 권한을 얻지 못합니다. 전철기. – eriktous

관련 문제