파이선 ii - 언어

언어를 만들고 싶다고 한참이나 생각했었지만, 코딩을 반복할 수록 그게 얼마나 어려운 일이진 실감하게된다.

참조우선순위


방금전에 파이선이 좋다고 하는 글을 올렸는데, 사실 언어자체로 보면 이상한 점이 꽤 많다.

x = 2
def F():
    x = 1
    def G():
        print x
    G()
F()

처음 이 코드를 봤을 때 직감적으로 와 닿질 않았다. 브레이스 “{} ” 너무 익숙해져 있기 때문인가보다. 파이선 코드를 자꾸만 보고있으면 브레이스가 없어진 것이 소스를 더 이쁘게 해주는 것 같다는 느낌이 들기도 한다.

그건 그렇고 위의 소스를 실행하면 화면에는 “2”가 찍혔었다. 최신버전에서는 그러지 않는다.

변수 참조 순서가 로컬(함수 G의 안쪽), 글로벌 (맨 바깥의 x=2), 그리고, 내장된 변수의 순서이기 때문에 F 안쪽에 있는 변수는 참조되지도 않는다.

맨 처음에 언어를 설계할 때 빼먹은 몇 가지가 지금에 와서 발목을 잡고있다.

한글


자기들이 적어놓은 글에는 잘된다고 자랑을 해놓았지만, 쓰다보면 걸리는 일이 꽤 많다. XML 쪽 기능을 보강해주는 xmlplus라는 놈을 설치해봤는데, 역시 한글 인코딩에서 문제가 발생했다.

자바가 몇년에 걸쳐서 해온 일을 똑같이 반복하는 것처럼 보인다. 자바도 맨처음에는 데이터베이스에서 뭔가를 꺼내고 넣고, 할 때마다, new String(xx.getBytes(..), “..”) 를 반복해주었었다. 그리고… 지금도 그래야만 하는 엔진들이 몇개인가 있다.

일본인이 만들었다는 Ruby는 일본어에 대해서만큼은 그런 문제가 없겠지.