2010-04-26 4 views
1

나는 C# 또는 C++에서 "Sub-language"와 같은 종류의 것을 만들 수 있습니까? 더 나은 용어는 "확장"일까요? 그리고 누군가는 링크/자원을 제공 할 수 있습니까?Sub Language C#

많은 감사를드립니다! :)

감사 제이슨이

+2

정확히 무엇이 필요한지는 의문의 여지가 없습니다. 정교하게 노력하십시오. –

+1

"도메인 특정 언어"를 말하는 것 같습니다. 인터넷 검색은 http://www.codeproject.com/KB/recipes/YourFirstDSL.aspx – RossFabricant

+2

과 같은 결실을 맺은 결과를 낳습니다. 의미가 무엇인지 말하지 않고 "하위 언어"와 같은 단어를 던져 아마 많은 공상적인 응답을 유발할 것입니다. 당신이하려고하는 것을 조금만 설명하는 것이 더 효과적 일 것입니다. –

답변

0

그것은 모두 당신이 "하위 언어를"고려에 따라 달라집니다.

DLR (Dynamic Language Runtime)을 활용하는 방법을 배우는 데 시간과 노력을 기울일 의향이 있으면 원하는 모든 것을 만들 수 있습니다.

0

이 좀 더 구체적으로 할 수 있습니까? DLR에서 자신의 동적 언어를 만들 수 있습니다. 또한 here.

0

단순함을 위해 나는 '당신 만의 스크립트 언어'를 만들고 있습니다. 미리 컴파일 된 코드에 관심이없고 대신 런타임에 컴파일 된 것을 원할 경우 런타임에서 직접 실행할 수 있도록 자체 스크립트 언어를 만들고 파서를 작성하십시오.

0

음, .net은 다국어 플랫폼입니다. 물론 컴파일러를 작성해야하며 C#을 비롯한 모든 언어로 컴파일러를 작성할 수 있습니다. 나는 writing a brainf**k compiler in C#에 관한 시리즈를 시작했다.

컴파일러는 Languague-to-IL 일 필요는 없지만 Language-To-C#을 컴파일 한 다음 C# 컴파일러 (일부 사람들은 컴파일러 전 처리기라고도 함)를 사용하는 컴파일러를 작성할 수도 있습니다. 당신이하는 일이 C# (또는 C++이 당신이하고 싶은 일이라면)으로 변환 될 수 있다는 것을 확실히 할 필요가 있습니다. 그런 다음 키워드 및 언어 토큰을 정의 할 수 있습니다.

새롭고 섬세한 프로그래밍 언어를 만드는 것은 향후 유지 보수 부채가 될 수 있으며 흔히 "Not invented here"- 증후군의 징후입니다.

2

저는 항상 C++ 프로그래밍을 보았습니다. 새로운 문제를 해결하기 위해 새로운 유형을 만들어 언어를 확장한다는 것입니다.

0

나는 Irony을 사용하여 DSL을 구현했으며 훌륭하게 작동했습니다. 여전히 WIP가 매우 중요하다는 것을 염두에 두십시오. 작업하기에 꽤 좋을 것입니다.