나는 프로그래밍 언어를 썼다. 여기 당신이 할 수있는 방법,너무.

윌리엄 W 고원

통해 지난 6 개월 동안,작업을했습니다 라는 프로그래밍 언어 솔방울. 나는 아직 성숙 호출하지 않을 것이다,하지만 이미 같은 사용할 수 있도록 작업 충분한 기능을 가지고 있습니다:첫 번째 단계는 전체 입력 소스 파일을 포함하는 문자열입니다. 마지막 단계는 실행할 수있는 무언가이다. 이것은 우리가 솔방울 파이프라인 단계를 통해서 단계적으로 가는 때 모두 명확하게 될 것이다.

Lexing

첫 번째 단계에서 대부분의 프로그래밍 언어가 lexing,또는 토큰화. ‘렉스’는 어휘 분석을 위해 짧으며 텍스트 무리를 토큰으로 나누는 매우 멋진 단어입니다. ‘토크 나이저’라는 단어는 훨씬 더 의미가 있지만’렉서’는 어쨌든 그것을 사용한다고 말하는 것이 너무 재미 있습니다.토큰은 언어의 작은 단위입니다. 토큰은 변수 또는 함수 이름(일명 식별자),연산자 또는 숫자 일 수 있습니다.렉서는 소스 코드 가치가있는 전체 파일을 포함하는 문자열을 가져 와서 모든 토큰을 포함하는 목록을 뱉어 내야합니다.빌드 간단한 유지:때마다 문법 변경 들소는 빌드 전에 실행해야합니다. 이것은 자동화 될 수 있지만 빌드 시스템 사이를 전환 할 때 고통이됩니다.나는 그것이 쉬울 것이라고 생각했기 때문에 솔방울을 만들지 않았으므로 왜 내가 스스로 할 수있을 때 중심 역할을 위임 할 것인가? 사용자 정의 파서는 사소하지 않을 수 있지만 완전히 수행 할 수 있습니다.이 응용 프로그램은 당신이 당신의 안드로이드 장치에 대한 최신 뉴스,날씨,스포츠,날씨와 비디오를 제공합니다.:”좀 더 논란의 여지가 있지만,렉서 또는 파서 생성기 및 기타 소위”컴파일러 컴파일러로 시간을 낭비하지 않을 것입니다.”그들은 시간 낭비입니다. 렉서 및 파서를 작성하는 것은 컴파일러를 작성하는 작업의 작은 비율입니다. 생성기를 사용하면 손으로 쓰는 것만 큼 많은 시간이 걸릴 것이고,생성기와 결혼 할 것입니다(컴파일러를 새로운 플랫폼으로 이식 할 때 중요합니다). 그리고 발전기는 또한 형편없는 오류 메시지를 방출하는 불행한 평판을 가지고 있습니다.”

조치 나무

우리는 우리가 지금 남아 영역의 일반적인,유니버설 조건,또는 적어도 내가 무엇인지 모르는 용어는 더 이상. 내 이해에서,내가’액션 트리’라고 부르는 것은 적외선(중간 표현)과 가장 유사합니다.

답글 남기기

이메일 주소는 공개되지 않습니다.