나는 언젠가는 언어를 설계/작성하는 것에 대해 생각하고 있으며,이를 실행하기위한 장점, 단점 및 어려움은 무엇입니까? NET 프레임 워크/CLR?장점, 단점 및 사용할 언어를 작성하는 어려움 .NET
6
A
답변
21
가장 어려운 부분은 효과적인 프로그래밍 언어를 설계하는 것입니다. 많은 사람들이 자신의 모든 직업을이 일에 전념했습니다. 여기에 언어 디자인 및 일반적인 구문 분석 질문에 대한 많은 질문이 있었기 때문에 CLR을 대상으로하는 측면에 특히 중점을 둘 것입니다. 바이너리 형태
장점
- 생성 바이트 코드는
System.Reflection.Emit
네임 스페이스와 .NET 4.0의 멋진 새System.Linq.Expressions
능력을 사용하여 매우 간단합니다. 이 설정은 CLR을 목표로하는 개인적인 욕구의 주요 동기 중 하나입니다. - 코드는 CLR의 JIT 및 메모리 관리자에 내장 된 많은 최적화 기능을 활용할 수 있습니다.
- 일반적으로 CLR을 대상으로 선택하고 고유 한 코드를 작성하는 경우 적은 시간에 언어에 맞는 작동 컴파일러를 빌드 할 수 있습니다.
단점
- 그것은 단지 .NET 프레임 워크가 실행되는 플랫폼에서 실행됩니다. P/Invoke 호출을 피하면 Mono 프로젝트의 도움으로 문제가되지 않습니다.
- 언어의 의미 구조를 CIL 지침 및 CLI 개체 모델에서 표현 가능한 형식으로 낮춰야합니다. 강력하고 형식이 강하고 필요에 따라 객체 지향적 인 언어의 경우 절차가 간단합니다. 기능적 또는 동적 유형 언어의 경우 이것은 매우 어려울 수 있지만 이러한 기능이 필요한 경우 DLR에서 도움을 얻을 수 있습니다.
- 일반적으로 기계 고유 함수에 편리하게 액세스 할 수 없으므로 고성능/벡터화 된 과학 컴퓨팅을 목표로하는 언어의 경우 현재 구현에서 성능 문제가 발생할 수 있습니다. Mono는이 문제에 적극적으로 노력하고 있지만 Mono 또는 .NET Framework는이를 "확립 된 기술"로 자리 매김하지 않았습니다.
어려움 (언어 및 컴파일러 프론트 엔드를 계산하지 않음)
- 는 가장 "흥미로운"측면은 CLR의 제한에 따라 언어의 의미 구조를 표현하는 당신의 방법을 누워있다.
- 여기에 말할 거리가 너무 많지 않습니다. 다른 대상과 비교할 때 CLR을 쉽게 타겟팅 할 수 있습니다.
요약
CLI는 새로운 언어 구현에 일하는 사람들을위한 최고의 선택이 될 것입니다. 이를 통해 일반적인 컴파일러 백엔드에서 벗어나 언어 자체의 의미에 집중할 수 있습니다. 나는 그렇지 않을 수도 있습니다 누군가가 새로운 언어를 만들지 만, 결정하면 CLI는 좋은 여행이 될 것입니다.
+0
와우 그게 좋은 답변이야! – RCIX
관련 문제
- 1. 템플릿 엔진 장점 및 단점
- 2. 웹 서비스 vs WCF, 장점 및 단점
- 3. Lucene의 MultiSearcher 클래스 사용시 장점 및 단점
- 4. 임베디드 스크립팅 환경의 장점/단점?
- 5. 정적 및 동적 계측의 장점/단점
- 6. 장점/단점 : acts_as_foo가 아닌
- 7. StyleCop, 장점 / 단점
- 8. 리팩터링 도구의 장점/단점
- 9. PHP 상수 : 장점/단점
- 10. 패턴 "하나의 작업, 다중보기": 장점 및 단점
- 11. 약형 언어의 장점 (및 단점)은 무엇입니까?
- 12. Castle Windsor 또는 Spring.NET - 장점 및 단점
- 13. 브라우저 기반 인터페이스/그래픽의 장점/단점
- 14. SQLite.NET 및 SQL Server Compact의 장점 및 단점
- 15. 웹 서버 측의 Keep-Alive 장점 및 단점
- 16. Pub Sub에 Redis 사용. RabbitMQ의 장점/단점
- 17. 오브젝트 비교를위한 다른 구현의 장점/단점
- 18. socketio 하트 비트 사용의 장점/단점
- 19. 캐스팅 UserControl ASP.control_name_ascx vs Control_Name - 장점/단점?
- 20. 웹 응용 프로그램의 하위 도메인 장점/단점
- 21. ASP.NET IIS 서버에 Office 설치 : 장점/단점?
- 22. 클래스 라이브러리 프로젝트 VS App_Code - 장점/단점?
- 23. DFA와 비교했을 때의 NFA의 장점/단점
- 24. 이진 참조의 장점/단점 VS WCF
- 25. Web Services vs. EJB v RMI, 장점 및 단점?
- 26. 빌딩 실버 레벨의 비즈니스 애플리케이션 라인 장점 및 단점
- 27. 장점 및 단점 asp.net 사용자 지정 처리기를 사용하여?
- 28. 장점
- 29. 인트라넷에있는 .net 이상의 장점
- 30. WebView 또는 MapView에서 Google Maps JavaScript API를 직접 사용할 수 있습니까? 장점 및 단점?
꽤 큰 주문입니다! – womp