Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- react
- GitHub
- JS
- maven
- gradle
- 개발노트
- Vane
- Python
- jetbrains
- rubymine
- error
- IntelliJ
- plugin
- Spring
- Android
- OTLanguage
- Baekjoon
- boj
- kotlin
- Shell
- C
- Godot
- RaspberryPi
- Java
- ruby2d
- gnuplot
- ruby
- CPP
- 루비
- OAuth
Archives
- Today
- Total
PersesTitan(페르) 기술블로그
Parsing (파싱), Parser (파서) 에 대해서 본문
전 파서와 파싱을 난해한 프로그램 언어(OTLanguage)를 만들면서 알게 되었는데요.
그래서 파싱과 파서에 대해서 설명을 간단하게 적게 되었습니다.
파싱 (Parsing)
파서를 알아보기 전에 파싱을 알아보겠습니다.
파싱은 특정 패턴이나 순서등을 추출하여 컴퓨터가 알아들을 수 있게 바꾸어주는 작업을 말합니다.
예시로 간단한 사칙연산을 사용해보았습니다.
(OTLanguage 문법 입니다.)
12.34 ㅇ+ㅇ (32 ㅇ/ㅇ 34) ㅇ+ㅇ 34234
위 문법을 구문 트리로 만들면 아래와 같은 구문 트리가 만들어지게 됩니다.
이렇게 토큰으로 분리되어 각 문장을 컴퓨터가 인식할 수 있게 만드는 작업을 하는 것 입니다.
사칙연산을 위해서는 <숫자> <연산자> <숫자> 이여야 하는데 만약 <숫자> <연산자> <다른 무언가> 와 같이 규칙에 맞지 않는 규칙이 들어가 있다면 변환하지 못하고 있어야 하는 것이죠.
구문 분석 성공 예시
정상적으로 문법에 맞게 입력하면 파싱이 올바르게 작동합니다.
구문 분석 실패 예시
34 ㅇ+ㅇ 342아34
<숫자> <연산자> <???>
파서 (Parser)
사실 파서는 단순히 파싱을 하는 프로그램을 말하는 것입니다.
여담으로 OTLanguage에는 전용 파서를 직접 들어가있습니다.
1개씩 계산해 내려가는 동작을 출력하면 아래처럼 동작합니다.
'Language > OTLanguage' 카테고리의 다른 글
[OTLanguage][안내] window 프로토타입 업로드 (0) | 2022.12.07 |
---|---|
OTLanguage (문법/정보 총 정리) (1) | 2022.11.24 |
[OTLanguage] vscode에서 난해한 프로그래밍언어 작업해보기 (0) | 2022.11.24 |