Connecting the dots
close
프로필 배경
프로필 로고

Connecting the dots

  • 분류 전체보기 (41) N
    • Language (8)
      • Java (4)
      • Go (4)
    • Backend (12)
      • Architecture (1)
      • Spring (1)
      • Infra (9)
    • Project (9) N
      • EatPick (3)
      • 밑바닥부터 만드는 인터프리터 in go (3)
      • 새김 언어 제작기 (3) N
    • 우아한테크코스 (11)
      • 7기 프리코스 (7)
      • 8기 프리코스 (4)
    • ETC (0)
      • Book (0)
      • Git (0)
    • 회고 (1)
      • 2025년 상반기 회고 (1)
  • 홈
  • 태그
  • 방명록
[새김 언어 제작기] Part 3 - 언어 확장하기 (feat. 방언 지원)

[새김 언어 제작기] Part 3 - 언어 확장하기 (feat. 방언 지원)

들어가며Part 1에서는 한글 토큰화의 도전(유니코드, rune 타입)을 다뤘고, Part 2에서는 파서와 평가기를 구현하며 연산자와 출력 함수 문제를 해결했다. 이제 표준어 버전의 프로그래밍 언어 '새김'이 완성되었다! 하지만 무언가 재미있는 요소를 더하고 싶었다. 한글로도 더 다양한 표현이 가능하지 않을까?🤔 표준어뿐만 아니라 충청도 방언으로도 프로그래밍할 수 있다면 더 재미있지 않을까? 표준어 버전만약 (참) { 출력("안녕")} 충청도 방언 버전이쪽이에유 (맞어유) { 출력해유("안녕")} 이번 편에서는 여러 방언을 지원하는 확장 가능한 구조를 어떻게 설계했는지 소개한다. 방언을 지원하려면 어떻게 해야 할까?초기에는 아래와 같이 표준어용 렉서/파서/평가기와 충청도 방언용 렉서/파서/..

  • format_list_bulleted Project/새김 언어 제작기
  • · 2025. 11. 23.
  • textsms
[새김 언어 제작기] Part 2 - 파서의 함정들 (feat. 연산자와 출력 함수)

[새김 언어 제작기] Part 2 - 파서의 함정들 (feat. 연산자와 출력 함수)

들어가며Part 1에서 한글 토큰화에 성공했다.https://jihyun-devstory.tistory.com/90 [새김 언어 제작기] Part 1 - 한글 처리 (feat. 유니코드와 렉서)왜 한글 프로그래밍 언어인가?보통 프로그래밍 언어를 사용할 때, 줄곧 영어를 사용해 코드를 구현한다. 그 이유가 무엇일까? 바로 최초의 프로그래밍 언어들이 모두 영어로 구현되었기 때문이jihyun-devstory.tistory.com 이제 이 토큰들을 실제로 실행 가능한 프로그램으로 만들어야 한다. 이번 편에서는 파서와 평가기를 구현하며 마주친 2가지 주요 문제를 다룬다. 1. >= 연산자 쪼개짐 문제2. 출력 함수 설계 문제 초기 Parser 정의우선 기존에 만들었던 인터프리터 코드를 참고해, 정의했던 토큰 범..

  • format_list_bulleted Project/새김 언어 제작기
  • · 2025. 11. 23.
  • textsms
[새김 언어 제작기] Part 1 - 한글 처리 (feat. 유니코드와 렉서)

[새김 언어 제작기] Part 1 - 한글 처리 (feat. 유니코드와 렉서)

왜 한글 프로그래밍 언어인가?보통 프로그래밍 언어를 사용할 때, 줄곧 영어를 사용해 코드를 구현한다. 그 이유가 무엇일까? 바로 최초의 프로그래밍 언어들이 모두 영어로 구현되었기 때문이다. 나는 이러한 틀을 깨고 싶었다. 한글로 프로그래밍을 하면 어떨까? 생각만 해도 재미있어보였다. 실제로 이러한 생각을 하신 분들이 있는지 서치해보니, 아래와 같이 한글 프로그래밍 언어를 이미 구현하신 분들이 많았다. 엄랭https://github.com/rycont/umjunsik-lang?tab=readme-ov-file GitHub - rycont/umjunsik-lang: 어떻게 엄준식이 언어이름이냐🤣어떻게 엄준식이 언어이름이냐🤣. Contribute to rycont/umjunsik-lang developme..

  • format_list_bulleted Project/새김 언어 제작기
  • · 2025. 11. 19.
  • textsms
[밑바닥부터 만드는 인터프리터 in go] 3. 평가기 동작 원리

[밑바닥부터 만드는 인터프리터 in go] 3. 평가기 동작 원리

들어가며현재까지 렉서와 파서를 구현해보았다. 이제 평가기를 구현해볼 차례이다. https://jihyun-devstory.tistory.com/82 [밑바닥부터 인터프리터 만들기 with go] 1. 렉서 구현하기해당 시리즈는 '인터프리터 만들기 with go' 책을 처음부터 하나씩 따라가며 인터프리터를 구현한 내용을 담았다. 따라서 앞으로 나올 모든 코드는 책의 내용을 직접 따라치며 구현한 결과이다.jihyun-devstory.tistory.com https://jihyun-devstory.tistory.com/83 [밑바닥부터 인터프리터 만들기 with go] 2. 파서 구현하기파서란?위키백과에 따르면 컴퓨터 과학에서 파싱(parsing)은 일련의 문자열을 의미있는 토큰(token)으로 분해하고 이들..

  • format_list_bulleted Project/밑바닥부터 만드는 인터프리터 in go
  • · 2025. 11. 19.
  • textsms
[밑바닥부터 만드는 인터프리터 in go] 2. 파서 동작 원리

[밑바닥부터 만드는 인터프리터 in go] 2. 파서 동작 원리

파서란?위키백과에 따르면 컴퓨터 과학에서 파싱(parsing)은 일련의 문자열을 의미있는 토큰(token)으로 분해하고 이들로 이루어진 자료구조를 만드는 과정을 말한다. 자료구조는 파스 트리 또는 추상구문트리일 수 있고, 다른 계층 구조일 수도 있다. 우리가 렉서를 구현하는 과정에서 만들었던 토큰을 어떻게 자료구조로 구성한다는걸까? 자료구조의 종류파싱에서 사용할 수 있는 자료구조 중 파스 트리와 추상 구문 트리에 대해 알아보려 한다. Parse Tree란?파스 트리는 올바른 문장에 대해 트리 구조로 나타낸 것이다. AST(Abstract Syntax Tree)란?AST는 프로그래밍 언어로 작성된 소스 코드의 추상 구문 구조의 트리이다. 차이점은?파스 트리는 입력의 모든 것(모든 토큰과 문법 규칙)을 포..

  • format_list_bulleted Project/밑바닥부터 만드는 인터프리터 in go
  • · 2025. 11. 18.
  • textsms
[밑바닥부터 만드는 인터프리터 in go] 1. 렉서 동작 원리

[밑바닥부터 만드는 인터프리터 in go] 1. 렉서 동작 원리

해당 시리즈는 '인터프리터 만들기 with go' 책을 처음부터 하나씩 따라가며 인터프리터를 구현한 내용을 담았다. 따라서 앞으로 나올 모든 코드는 책의 내용을 직접 따라치며 구현한 결과이다. 시리즈의 목적은 단순 구현이 아닌 이 과정에서 마주친 의문점들에 대해 탐구하고 해결해나가는 과정을 통해, 인터프리터의 동작 원리를 제대로 이해하는 것이다. 렉서에 대해 알아보기 전에 우선 인터프리터에 대해 알아보자. 인터프리터인터프리터란?인터프리터(Interpreter)는 소스 코드를 직접 실행하는 프로그램이다. 컴파일러처럼 기계어로 번역하지 않고, 코드를 읽으면서 즉시 해석하고 실행한다. 컴파일러 vs 인터프리터컴파일러: 소스 코드 → [번역] → 실행 파일 → 실행인터프리터: 소스 코드 → [해석 + 실행]..

  • format_list_bulleted Project/밑바닥부터 만드는 인터프리터 in go
  • · 2025. 11. 16.
  • textsms
  • navigate_before
  • 1
  • 2
  • navigate_next
공지사항
  • 티스토리 시작 - 블로그 옮기게 된 이유
전체 카테고리
  • 분류 전체보기 (41) N
    • Language (8)
      • Java (4)
      • Go (4)
    • Backend (12)
      • Architecture (1)
      • Spring (1)
      • Infra (9)
    • Project (9) N
      • EatPick (3)
      • 밑바닥부터 만드는 인터프리터 in go (3)
      • 새김 언어 제작기 (3) N
    • 우아한테크코스 (11)
      • 7기 프리코스 (7)
      • 8기 프리코스 (4)
    • ETC (0)
      • Book (0)
      • Git (0)
    • 회고 (1)
      • 2025년 상반기 회고 (1)
최근 글
인기 글
최근 댓글
태그
  • #go
  • #프리코스
  • #java
  • #우아한테크코스 7기
  • #우아한테크코스
  • #노마드코더
  • #8기
  • #회고
  • #한글 프로그래밍 언어
  • #우아한테크코스 6기
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바