문제

저는 컴파일러, 통역사, 언어에 관심이 있습니다.

당신이 알고 있는 가장 흥미롭지만 잊혀지거나 알려지지 않은 언어는 무엇입니까?그리고 더 중요한 것은 왜일까요?

컴파일 언어, 해석 언어, VM 언어 모두에 관심이 있지만 ~ 아니다 Whitespace 또는 BF와 같은 난해한 언어.
물론 오픈 소스는 플러스가 될 것입니다. 왜냐하면 저는 오픈 소스에서 공부하고 배울 계획이기 때문입니다.

도움이 되었습니까?

해결책

나는 컴파일러와 VM을 좋아하고 Lua를 좋아합니다.

Lua는 다른 많은 스크립팅 언어만큼 잘 지원되지는 않지만, 당신과 같은 사고 방식에서 Lua 와도 사랑에 빠질 것이라고 확신합니다. LISP와 같다 (LISP가 아는 한 LISP가 할 수있는 모든 것을 할 수 있음), ADA의 주요 기능을 많이 가지고 있으며, 기능적 프로그래밍과 객체 지향적 프로그래밍을 통해 메타 프로그래밍이 바로 구축되었습니다. 원하는 도메인 언어. VM의 코드 외에도 단순한 C이므로 해당 레벨에서도 쉽게 파헤칠 수 있습니다.

(그리고 오픈 소스 MIT 라이센스입니다)

다른 팁

저는 D 프로그래밍 언어의 팬입니다. 여기에 있습니다 위키 백과 기사 그리고 그리고 공식 사이트에서 소개.

Wikipedia 기사의 일부 스 니펫 :

단순히 D라고도하는 D 프로그래밍 언어는 Digital Mars의 Walter Bright의 객체 지향적 인 명령적인 다중 공사 시스템 프로그래밍 언어입니다. 그것은 C ++의 리엔지니어링으로 시작되었지만, 그 언어에 의해 주로 영향을 받더라도 C ++의 변형이 아닙니다. D는 일부 C ++ 기능을 재 설계했으며 Java, C# 및 Eiffel과 같은 다른 프로그래밍 언어에 사용되는 개념에 영향을 받았습니다. 안정적인 버전 인 1.0은 2007 년 1 월 2 일에 출시되었습니다. 실험 버전 2.0은 2007 년 6 월 17 일에 출시되었습니다.

기능 :

D는 이론적 인 관점이 아닌 실제 C ++ 사용에서 배운 교훈으로 설계되고 있습니다. 많은 C/C ++ 개념을 사용하더라도 일부를 버리고 C/C ++ 소스 코드와 엄격하게 뒤로 호환되지 않습니다. 계약, 단위 테스트, 진정한 모듈, 쓰레기 수집, 1 등석 어레이, 연관 배열, 동적 배열, 배열 슬라이싱, 중첩 된 기능, 내부 클래스, 클로저 [2], 익명 함수, 익명 함수, C ++ 기능에 추가됩니다. 시간 기능 실행, 게으른 평가를 컴파일하고 리엔지니어링 된 템플릿 구문이 있습니다. D는 저수준 코딩을 수행 할 수있는 C ++의 능력을 유지하고 통합 된 인라인 어셈블러를 지원하여 추가합니다. C ++ 다중 상속은 인터페이스 및 믹스 인과의 Java 스타일의 단일 상속으로 대체됩니다. D의 선언, 진술 및 표현 구문은 C ++의 선언과 밀접하게 일치합니다.

나는 당신이 '비 메인 스트림'이 의미하는 바에 달려 있다고 생각합니다.

일 것이다 LISP 비 메인 스트림으로 간주합니까?

나는 Erlang을 살펴 보는 것이 좋습니다. 최근에 약간의 언론을 얻었으므로 일부 학습 리소스가 우수합니다. OO 및/또는 절차 언어를 사용했다면 Erlang은 새롭고 흥미로운 방식으로 마음을 구부릴 것입니다.

Erlang은 순수한 기능적 언어이며 동시, 분산 및 결함 내성 프로그램에 대한 접지 지원을 제공합니다. 변수는 실제로 변수가 전혀 변수가 아니라는 사실을 포함하여 여러 가지 흥미로운 기능이 있습니다. 일단 선언 한 후에는 변경할 수 없으며 실제로 패턴의 형태로 더 잘 이해됩니다.

Erlang 플랫폼 (OTP) 위에 구축하는 것에 대한 Blogosphere와 관련하여 일부 이야기가 있으며 Ruby -Erlang과 같은 다른 언어에 대한 기계 지원은 동시 앱을 실행하기위한 일종의 가상 머신이 될 것입니다. 이는 매우 흥미로운 가능성이 될 것입니다.

나는 최근에 사랑에 빠졌다 OCAML 그리고 일반적으로 기능적 언어.

예를 들어 OCAML은 가능한 모든 세계 중 최고를 제공합니다. 기본 머신 언어를 C만큼 빠르게 실행할 수있는 코드 또는 보편적으로 휴대용 바이트 코드를 얻는 코드가 나타납니다. 당신은 통역사가 개발에 반품 속도를 가져올 수 있도록합니다. 당신은 완벽하게 직교 구조, 깊은 재귀 및 진정한 다형성을 생성하기 위해 기능적 프로그래밍의 모든 힘을 얻습니다. 이 모든 것은 객체 지향에 대한 지원이며, 이는 이미 OOP 약속 (캡슐화, 모듈화, 직교 함수 및 다형성 재활성)을 이미 제공하는 기능 언어의 맥락에서 실제로 자신을 증명 해야하는 OOP를 의미합니다.

잡담 (여기서 링크 된 토론 참조). 역동적 인 언어의 웅장한 일 (LISP와 Snobol을 제외하고). Java와 이제는 Python과 Ruby와 같은 새로운 언어와 함께 일하고 슬프게도 엉망입니다.

Forth는 초기 CPU의 저수준 코드를 위해 설계된 언어였습니다. 가장 주목할만한 기능은 RPN 스택 기반 수학 작업이었습니다. 초기 HP 계산기에 사용 된 것과 동일한 유형의 수학. 예를 들어 1 +2 +3 +4 = 1, 2, 3, 4, +, +, +로 작성됩니다.

Haskell과 Rebol은 매우 다른 이유로 매혹적인 언어입니다.

Haskell은 Monads, 부분 적용, 패턴 매칭, 대수 유형 등과 같은 개념을 통해 개발자로서 눈을 뜨고 있습니다. 호기심 많은 프로그래머를위한 Smorgasbord입니다.

레볼도 멍청하지 않습니다. 처음에는 기만적으로 간단하지만 상황, 방언 및 바인지와 같은 개념을 탐구하기 시작하면 눈을 만나는 것 이상의 것이 있다는 것을 알게됩니다. Debol의 좋은 점은 Haskell보다 그것을 시작하는 것이 훨씬 쉽다는 것입니다.

내가 더 좋아하는 것을 결정할 수 없습니다.

우우 .NET 프레임 워크를 대상으로하고 오픈 소스입니다. 파이썬에서 영감을 얻었습니다.

노력하다 Colorforth.

Prolog는 백 트랙 기능을 갖춘 규칙 기반 언어입니다. PROSA에서와 같이 인간이 읽을 수있는 매우 인간을 생성 할 수 있습니다.

나는 제약 언어가 흥미롭다고 생각하지만 무엇이 잊혀지거나 알려지지 않은 것인지 알기가 어렵습니다.다음은 내가 알고 있는 몇 가지 언어입니다(이것은 확실히 모든 종류의 완전한 목록은 아닙니다).

  • 챠오, , SWI-프롤로그, 그리고 GNU 프롤로그 모두 Prolog 구현입니다.나는 그것들이 모두 오픈 소스라고 생각합니다.Ciao, gnu 프롤로그 및 아마도 다른 것들도 Prolog 구현에서 흔히 볼 수 있듯이 다른 제약 조건 유형을 지원합니다.예를 들어 정수 프로그래밍.
  • 모차르트 그리고 수은 내가 이해하는 바에 따르면 둘 다 대체 논리 프로그래밍 언어입니다.
  • 앨리스 ML 계열에 더 가깝지만 다음을 사용하여 제약 조건 프로그래밍을 지원합니다. 지코드 C++ 라이브러리.

주제에서 조금 벗어나네요....

  • 모드 흥미로운 용어 재작성 언어입니다.
  • 그리고 COQ 둘 다 언어 커뮤니티에서 일반적으로 사용되는 기계화된 증명 시스템입니다.

최고의 람다 프로그래밍 언어에 대해 이야기하고 더 많은 것을 배울 수 있는 좋은 장소입니다.

나는 계획을 말해야 할 것이다. R6R 강생.

Modula-2는 내가 가장 흥미로운 것을 발견 한 비 임원 언어입니다. 주류처럼 보이지만 우리가 익숙한 것처럼 잘 작동하지 않습니다. Pascal에서 많이 물려 받지만 흥미로운 학습 가능성을 제공 할만 큼 충분히 다릅니다.

Io를 살펴보세요. http://www.io언어.com/또는 Lisaac 주소: https://gna.org/projects/isaac/또는 본인: http://self.sourceforge.net/또는 Sather (현재 절대적으로 잊혀진) 또는 에펠 http://www.eiffel.com

여기에는 몇 가지 이유가 있습니다.Io는 완전히 미니멀리즘적이며 구문 엔터티로서 "제어 흐름 요소"조차 갖지 않습니다.Lisaad는 AFAIKT를 많이 단순화한 에펠의 후속작입니다.Self는 Smalltalk의 후속작이며 Io도 Self에서 꽤 많은 부분을 가져왔습니다.기본은 클래스와 객체의 구별이 포기되었다는 것입니다.Sather는 몇 가지 다른 규칙과 기능적 프로그래밍에 대한 더 나은 지원(처음부터 바로)을 갖춘 에펠의 대답입니다.

그리고 에펠은 확실히 정적으로 유형이 지정된 OO 언어의 특징입니다.에펠은 계약에 의한 디자인, 제네릭(일명 템플릿) 및 상속을 처리하는 가장 좋은 방법 중 하나를 지원하는 최초의 언어였습니다.그것은 여전히 ​​​​간단한 언어 중 하나였으며 지금도 그렇습니다.나는 에펠을 위한 최고의 도서관을 찾았습니다.....

제작자에게는 한 가지 문제가 있습니다. 그는 OO 분야에 대한 다른 기여를 수락하지 않았습니다....

문안 인사

나는 최근에 배웠습니다 의 존재 ~에서 이 질문. 이후 몇 가지 질문에 대한 답으로 사용했습니다. (1, 2, 3, 4)

평가 전략으로 인해 흥미 롭습니다. 역 추적을 지원하는 유일한 필수 언어입니다. 그것은 많은 것들에 대한 멋진 간결한 코드를 허용합니다 :)

프로그래밍 습관을 다시 생각 해야하는 언어를 배우는 것은 필수입니다. 확실한 징후는 언어의 핵심 문서 (라이브러리가 아님)를 훑어 보는 속도입니다. 빠른 의미는 여기에서 열매가 없습니다.

나의 짧은 목록은, 노출 순서와 내가 그들에게서 배운 개념은 무엇입니까?

  • Assembly, C : 학습 포인터 및 산술에 적합합니다.
  • C ++ : 제네릭 소개가있는 C와 동일합니다.
  • Ruby/Lua : 스크립팅 언어, 동적으로 입력 한 기존 C 라이브러리의 바인딩 작성.
  • Python/C#/Java : 건너 뛰기,이 언어는 저에게 거대한 표준 라이브러리로 다른 곳에서 발생하는 개념의 재사용으로 보입니다. 전체 패키지가 좋지만 여기서는 새로운 개념을 배우지 못할 것입니다.
  • OCAML : 유형 추론이 올바르게 완료되었습니다. 부분 적용, 컴파일러는 일반성을 추론하고 불변성을 기본값으로, 널을 우아하게 처리하는 방법.
  • HASKELL : 기본적으로 게으름, 모나드.

내 € .02.

로고가 너무 잊혀 졌다고 믿을 수 없습니다. 좋아, 로고 야. LISP와 비슷하지만 약간 추악한 구문이 있습니다. 로고에서 목록으로 작업하지만 'Butfirst'및 'Butlast'작업이 유쾌하게 지명됩니다. = p

ML. 그것을 배우고 그것을 사용하면 프로그래밍 문제에 대해 다르게 생각합니다. 또한 대부분의 경우 인내심 하나를 부여합니다. 대부분.

어때 가다? 그것은 새롭기 때문에 알려지지 않았으며 주류가 아닙니다 (아직).

구문이 C와 Pascal을 항아리에 넣고 싸우면 발생하는 일과 비슷하기 때문에 흥미 롭습니다.

일단 호출되면 유행성 이하선염 그러나 이제는 인터 사이 사항을 Caché라고합니다http://www.intersystems.com/cache/

첫 번째 답변 - 계획.너무 널리 사용되지는 않지만 특히 DrScheme(실제로 Scheme 프로그램을 기본 바이너리 코드로 컴파일함)의 견고성을 고려할 때 확실히 사용하기에 견고한 언어처럼 보입니다.

그 다음에는 Haskell이 엄청나게 흥미롭습니다.게으른 평가를 올바르게 수행하는 언어이며 그 결과는 놀랍습니다(피보나치 수열의 한 줄 정의와 같은 것을 포함하여).

좀 더 주류로 나아가면 Python은 여전히 ​​비즈니스계에서 널리 받아들여지지는 않지만, 지금쯤이면 확실히 받아들여져야 할 것입니다...

Ken Kahn 's Toontalk, 하드 코어 이론적 토대가있는 만화 언어 :http://www.toontalk.com/

프로토 그래프 : http://en.wikipedia.org/wiki/prograph ... Prophaph는 Marten으로 살아남는 것 같습니다. http://andescotia.com/products/marten/

Self의 IDE는/아름다움의 일이었고, 흐름에 대해 이야기합니다 (Csíkszentmihályi Sense에서) ...

그러나 전반적으로 Haskell이 가장 흥미 롭다고 말해야합니다.

항구 동적 유형의 경우. 비즈니스 앱에 대한 훌륭한 결합.

레아!

http://wiki.reia-lang.org/wiki/reia_programming_language

Erlang이 이해가되었고, 그것은 Beutifull이고 나는 사랑에 빠졌습니다. Wikipedia 페이지가 없을 정도로 알려지지 않았습니다!

내가 배운 첫 번째 전공 (비 기본) 언어는 Dream Maker였습니다. http://www.byond.com. C ++ 또는 Java와 다소 비슷하지만 멀티 플레이어 온라인 게임을 디자인하기 위해 사전 제작되었습니다. 그것은 상속에 기반을두고 있습니다. 그것은 특히 시작 언어로서 주간 언어이며, 결과를 더 빨리 만족스럽게 만듭니다. 정직하게 말하면, 처음 프로그램을 배우는 대부분의 사람들은 한 가지 게임에 관심이 있습니다 ... 게임에 관심이 있습니다.

나는 찾았다 요인, 온스 그리고 OCAML 꽤 흥미로운. 사실, 나는 개인 프로젝트에 요인을 사용하기 시작했습니다.

물론 레볼! 너무 간단하지만 너무 강력합니다. http://reboltutorial.com

나는 최근에 Windows에 대해 많이 찾았습니다 PowerShell.

반드시는 아닙니다 단지 언어. 내장 된 스크립팅 언어가있는 멋진 쉘입니다. 기본적으로 슈퍼 비프 업 명령 줄 쉘입니다.

모든 것이 문자열 텍스트 (확실히 이점이있는) 인 Unix 쉘과 달리 PowerShell 명령 (cmdlets)은 객체를 사용합니다. 그것은 .NET 프레임 워크를 기반으로하므로, 친숙한 사람들은 아마도 PowerShell 반환이 파이프를 만들 수 있고 그 객체의 속성과 방법을 사용할 수 있다는 것을 이미 알아 냈을 것입니다. "모든 것이 대상입니다!"라고 말하는 것은 재미 있습니다. OOP가 커질 때처럼 다시.

매우 깔끔한 것들. 처음으로 Windows는 GREP 및 전체 무리와 유사한 UNIX 명령 줄 인터페이스 도구를 구현하고 있습니다.

VM에 관심이 있으시면 앵무새... 지원되는 많은 언어가 있으며 꽤 깔끔합니다 ....

O'Caml은 컴파일러를 구현하는 방법을 배우고 싶다면 좋은 언어입니다 ...

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top