1. 언어를 만드는 인간들은 누구?
한 번쯤 자신만의 언어를 갖고 싶다고 생각한적은 없으신가요?
루비를 만든 마츠모토는 개발언어가 쉽고 즐거우며 인간 중심으로 설계되어야 한다는 철학 하에 기존의 언어들에 만족하지 못해 스스로 언어를 만들었다고 합니다.
기존 언어의 불편하고 형식적인 면이 지겨웠던 반로섬도 스스로 파이썬을 만들었습니다.
실은 C에서 반복적으로 첫번째 인자에 구조체 포인터를 전달하고 각 함수가 적절한 구조체 포인터와 바인딩되어 모듈화식 개발이 진행되던 당시의 상황에서 이를 보다 단순화하고 언어적 차원에서 지원하면 좋겠다는 니즈야말로 비야네스트롭이 C++을 만들게 된 이유입니다.
2. 언어를 만들어보면 좋은 점.
개발자로서 자신의 철학을 반영한 언어를 만들어보는 것은 여러 가지로 의미있는 일입니다.
- 언어의 설계를 위해 기존 언어의 설계를 깊이 있게 공부한다.
- 언어 처리를 제작하기 위해 저수준 언어를 깊은 수준으로 사용하게 된다.
- 토크나이저, 파서, 구문분석기등의 제작을 통해 문자열을 처리하는 달인이 된다.
- 문맥자유문법을 커버하는 파서를 작성하다보면 무한한 가능성에 대한 자료구조를 어떻게 만들지도 알게 된다.
- 기존의 언어가 왜 그렇게 작동하며 어떻게 사용해야 올바른지에 대한 이해가 생긴다.
이 외에도 수도 없습니다만, 자신의 언어를 만든다는 것은 굉장히 신나는 일입니다(뻥입니다. 고난스런일입니다 ^^;)
세상에는 수많은 언어가 있고 사람들의 철학(가치관)이 제각각인것처럼 언어의 목적도 전부 다릅니다.
자신만의 목적을 위한 완벽한 언어를 만들고 나아가 그 목적과 가치가 사람들에게 호응한다면 누가 알겠습니까 자신의 언어가 주류언어가 될 수도 있겠죠. 세계적으로 유명한 언어들은 중요한 특징이 있습니다.
3. 세계적인 언어가 되기 위한 필수조건
바로 훌륭한 ‘영어’로 된 코드와 문서가 있다 입니다(영어공부하세요 ^^) 루비도 결국 일본에서만 통용되다가 일명 곡괭이 책이라 불리는 프로그래밍루비를 데이브토마스가 영어로 낸 후에나 국외로 살짝 퍼졌습니다.
필란드는 필란드어와 스웨덴어를 쓰는 나라입니다만 리누스토발즈는 영어에 능통했기 때문에 오늘날 리눅스가 널리 성공한 이유라고 평가하는 시각도 많습니다. 본인의 언어를 만들어도 영어로 영어권사람들과 자유롭게 의사소통이 안되면 주류언어가 되긴 힘들겠죠.
정리
언어에는 다양한 계보와 방식과 철학과 목적이 있습니다. 저 같은 경우는 매우 손쉽게 파싱되는 제어형 인터프리터를 가볍게 구현하여 각 언어위에 올려두는 형식으로 호스트코드를 통일화할 목적으로 사용합니다.
이 때 중요한 가치는
- 학습의 용이성,
- 알고리즘 은닉을 통한 안정성,
- 하부 네이티브의 변화를 흡수하는 기능,
- 동일한 문법으로 어떤 언어에서나 호스트코드 구축
등입니다. 일명 bs라 불리는 이 언어는 어느새 4.x대에 진입하였고 지금도 지속적으로 성능개선이나 문법추가를 해가면서 회사의 중심적인 개발툴이 되고 있습니다.
판을 바꾸지 않고 할 수 있는게 있다면 판을 바꿔서 쉽게 해결할 수 있는 일도 있는 법이죠 ^^
함수를 스택머신으로 처리할지 리스트를 통한 독립 명령컨테이너공간으로 객체화할지 항상 고민되는 항목임..
처음시작하는 프로그래밍.. 중고서적 한권이 있어서 냉큼 구매신청했네요..ㅋㅋ
컴퓨터 프로그램의 구조와 해석은 현재 합본은 일시 품절이고 I,II권만 파는 중이구요.
Compilers도 품절..ㅠㅠ
새로보는 프로그래밍 언어는 예전에 구매해놓구 집에 썩혀두던 책인데.. 다시 봐야 겠네요..
감사합니다.. 알찬 책정보 잘 보고 갑니다..
ㅎㅎ 너무 무리하지말고 천천히!