자신의 난해한 (또는 그렇지 않은) 언어를 작성 했습니까? 어떻게 생겼습니까?

StackOverflow https://stackoverflow.com/questions/2239946

문제

StackoverFlow 사용자가 좋아하는 난해한 (또는 그렇지 않은) 프로그래밍 언어에 관한 몇 가지 질문을 보았습니다. 언어 구현에 관한 질문도 있습니다. 그러나, 나는 당신이 실제로 당신의 자신의 프로그래밍 언어를 작성했는지 (난해한 지) 작성했는지 궁금했고 그것이 어떻게 생겼는지 알고 싶었습니다.

나는 새롭고 독창적 인 언어를 읽고 배우려고 노력하는 것을 좋아하기 때문에 StackoverFlow 커뮤니티가 무엇을 제공 해야하는지 보는 것이 좋을 것이라고 생각했습니다. :)

하나를 썼습니다 몇 년 전에 재미를 위해.

도움이 되었습니까?

해결책

나는 가르치기 위해 7 개의 "마이크로"언어 세트를 썼습니다. 각각은 다음 전체 프로그래밍 언어 중 하나의 주요 아이디어를 설명하기위한 것입니다.

  • C의 유형 버전
  • 계획
  • 시스템 f
  • ML
  • 잡담
  • 프롤로그

언어는 고의적으로 다른 하나와 비슷하게 보이기 때문에 학생들은 필수 차이만을 보지 못하고 결코 무의미한 차이점을 보게됩니다. Haskell과 CLU를 기반으로 두 가지를 더하고 싶습니다.

샘 카민 독창적 인 아이디어가 있었고 디자인에 많은 도움이되었습니다.

다른 팁

그만큼 내 피트닉 박테리아의 opcodes, 물론이야

나는 선언적 텍스트 모험 언어로 의도 된 DIFL에서 운동을 해왔지만 시간이 지남에 따라 선언적이지 않습니다. 주요 기능은 매우 느슨한 객체 시스템과 멀티 메드를 기반으로하는 동작 시스템입니다. (글쎄, 그 주요 기능은 내가 그것을 끝내고 있다고 가정 할 것입니다.)

내가 쓰려고 한 첫 번째 언어 중 하나는 Midi-File 어셈블리 언어였습니다. Tempo 및 Instrument Bank를 정의한 다음 많은 노트 라인 (Note-Name, 시작 비트 측정 기간, 지속 시간, 선택적 악센트), 막대 라인 ( "Meas N") 및 역학 (ppp, pp, p, mp, mf, f, ff, fff).

매크로 언어 없이는 시퀀스를 반복하고 채널을 변경하며 새로운 트랙을 놓기 위해 실제로 사용할 수 없었습니다. 이를 위해서는 첫 해시 테이블이 필요했고, Tricksy Cross-your-Fingers는 QSORT를 호출하여 시간-시퀀스 (각 노트 온/노트 오프 이벤트에 의해 암시 적으로 운반)에 의해 채널을 인터 리브합니다.

1 년 후 돌아 왔을 때, 그것은 비트 로트의 희생자가되었습니다. 작은 투쟁이 끝난 후 나는 정렬 및 출력-모든 기능이 명시 적 EOF 코드에 의해 트리거되었다고 재발견했습니다. 거시적 확장 된 노래는 쉽게 20,000 줄 이었기 때문에 중요한 EOF 라인이있는 1/20000의 1/000th는 도대체 무슨 일이 일어나고 있는지 알아 내려고 할 때 발견 될 수있는 기회의 1/20000입니다!

나는 모든 증거가 마이크로파 카트 아래의 죽은 CPU에 안전하게 사라져서 다소 기쁩니다. 공포 !!

편집하다: 더 반성하면 MIDI 형식에 대한 흥미로운 것들이 있습니다. 가변 길이의 정수 유형 (마지막 바이트를 신호하기 위해 부호 비트를 사용하는 IIRC)이 있습니다. 바이트 지향적이며 9 개의 병렬 와이어 이상을 실행하도록 설계되었습니다. 그리고 그것은 내가 결코 이해하지 못한 미친 시간 동기화를 가지고 있습니다. 그러나 내가 걱정 한 것은 Windows95 미디어 플레이어가 출력을 해석 할 수 있다는 것입니다 (사운드 카드에 내장 된 8 비트 일반 미디 톤 뱅크를 사용할 수도 있습니다. 심벌즈는 영광스럽게 왜곡되었습니다).

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