4

나는 당분간 PHP로 컴파일 할 수있는 메타 언어를 위해 specification/kitchensink에서 작업 해왔다. 이제 그 일을 시작하기를 원합니다. 전에 PHP_Lexergenerator와 PHP_Parsergenerator를 사용하여 작은 DSL을 구현하기 전에 아주 잘 작동했지만 이전에는이 ​​스케일을 빌드하지 않았습니다. 나는 당신이 크게 가지고 있을지도 모른 어떤 의견 또는 제안 또는 경험을 평가할 것입니다!PHP로 컴파일하는 메타 언어를 구현하는 가장 좋은 방법

http://pastebin.com/613mFGsB에 사양을 붙여 넣었습니다.

+1

이것에 대한 모든 진도는? – musicin3d

+0

@ musicin3d 그것은 실제로 눈 코드를 PHP로 컴파일 할 수있는 https://github.com/runekaagaard/snowscript가되었습니다. 나는 1.0 버전으로 90 %를 완성 할 때까지 PHP 사용을 중단하고 관심을 잃었습니다. –

답변

4

Haxe은 컴파일 대상으로 PHP를 구현하는 언어입니다. 그것은 당신이 성취하고자하는 것과 비슷합니다. 그것은 OSS이기 때문에 어떻게하는지 살펴볼 수 있습니다.

+0

그게 전부 생각지도 못했던 OCaml에서 컴파일러가 구현되어있는 것처럼 보였습니다.하지만 흥미로운 구현 정보가있을 수 있습니다. –

2

pihipi는이 흥미로운 예 였지만 지금은 죽였습니다. 체크 아웃 Haxe : Haxe는 컴파일 타겟으로 PHP를 구현 한 언어입니다. 그것은 당신이 성취하고자하는 것과 비슷합니다. 그것은 OSS이기 때문에 어떻게하는지 살펴볼 수 있습니다.

+0

와우, 그게 아주 재미있어. "parser.y"및 "lexer.re"파일을보고 PHP 코어의 해당 파일보다 훨씬 멋진 파일을 찾고 있습니다. 우리의 목표는 매우 비슷해 보입니다. PHP를 코딩 할 때 여전히 파이피를 매일 사용하고 있습니까? 아니면 흥미와 유용성이 사라져 버렸습니까? –

+0

그래, 새로운 프로그래밍 언어에 대한 파서를 만드는 데있어 마지막 20 %는 시간이 걸린다. –

5

다른 사람이 비슷한 프로젝트를 수행하면 어쨌든이 작업을 중단하지 마십시오. 이 프로젝트를 얼마나 멀리 할지라도이 프로젝트에서 실제로 얻을 수있는 것은 코딩과 구문 분석에 대한 추가 지식입니다. 기존 프로젝트에 단순히 참여하면 깊이있는 지식을 얻을 수 없습니다.

리눅스, 우분투 등과 같은 것들도 원래 제조사가 단순히 다른 사람의 유사한 프로젝트의 "보트에 뛰어든"경우 결코 존재하지 않았을 것이라고 지적하고 싶습니다. 사물을 스스로 만드는 것을 두려워하지 마십시오. 때로는 위대함이 나오는 경우도 있습니다.

+0

꽤 충실한 조언이 들립니다. 정말 고마워! –