프로젝트 27

Scanner

Scanner란? Scanner는 소스코드의 모든 글자들을 읽어(Scan) Token의 형태로 이해하는 것을 말합니다. 소스코드를 Scanner에 넣으면 Token 목록, 즉 TokenList가 출력됩니다. 여기서 말하는 Token이란, 소스 코드 상에서 의미가 있는 단어 혹은 글자를 말합니다. 예를 들어 다음 c++ 소스 코드 상에서 '^'라는 글자는 아무 의미 없지만, 그 외에 int, main, (, ), {, } 와 같은 글자들은 모두 의미가 있고 하는 역할이 있습니다. int main() { ^ } Scanner는 이렇게 의미 있는 글자들을 단어로 묶어 하나의 Token으로 만듭니다. 그리고 모든 글자를 읽어서 Token List를 만듭니다. 반대로 의미 없는 글자를 발견하면 컴파일 에러를 발생..

프로그래밍 언어 문법

문법 진입점 함수 '본문'() { } 문장 문장은 마침표(.)로 끝난다. 단어와 단어는 띄어쓴다. 조사(은, 는, 이, 가, 을, 를, 보다, 와, 과, 거나)는 띄어쓰지 않는다. 식 식은 평가값을 갖는다. 식은 문장에 포함될 수 있다. 식은 소괄호로 묶일 수 있다. 리터럴 문자열 리터럴 : 쌍따옴표 안에 글자를 입력한다. "이것은 문자열 리터럴 입니다." 숫자 리터럴 : 한글로 된 숫자를 입력한다. 입력 가능한 글자는 일, 둘, 삼, 사, 오, 육, 칠, 팔, 구, 십, 백, 천, 만, 억, 조, 점 이다. 실수와 정수는 구분되지 않는다. 글자 '점' 아래에 숫자를 쓰면 소수점 아래 표현 가능. 이(2)로 끝나는 숫자 뒤에는 조사 '이' 가 올 수 없다. 일조삼억오천만삼천둘백칠십일점일둘삼사오 불 리터럴..

컴파일러를 만들어보자.

머리말 이 프로젝트는 책 '컴파일러 만들기, 컴퓨터 프로그램의 구조와 원리 ' 를 읽고 참고하여 만들었습니다. 해당 책에서는 C++ 언어를 사용해 저자가 만든 YuLang(유랭) 이라는 프로그래밍 언어를 컴파일하는 컴파일러와 인터프리터를 만듭니다. 하지만 그대로 따라 만들면 공부가 안되기에, 저는 약간 변형해 저만의 프로그래밍 언어를 정의하고 그를 컴파일해서 실행까지 시키는 인터프리터와 컴파일러, 그리고 컴파일된 코드를 실행시키는 가상머신까지 만들어 보겠습니다. 아래는 책 구매 링크입니다. https://www.yes24.com/Product/Goods/103153057 컴파일러란 무엇인가? 컴파일러란 소스코드를 실행가능한 파일로 만들어주는 프로그램을 말합니다. 좁은 의미로는 소스코드를 중간코드로 바꿔주..

Chat

프로젝트 소개 Github: https://github.com/jidungg/Chat 개발 기간: 2022.1 ~ 2022.6 개발 인원 : 1명 개발 도구 및 환경 : Visual Studio 2022, C++, Python, Windows10 설명: 게임 서버 코어 라이브러리 사용된 기술: Google protobuf CI(github action) AWS EC2(현재 서버 가동중) 주요 기능 다중 접속자 채팅 채팅 방 생성, 접속 서버 채팅 모니터링 실행 화면 이 프로젝트는 ServerCore 라이브러리(https://github.com/jidungg/GameServer)를 사용해 만들었습니다.

프로젝트/Chat 2023.02.14