한글 문법 프로그래밍 언어 KingSejong 을 작은 예제로 하나씩 배우는 저장소입니다. "Hello, World" 부터 시작해 한 레슨에 개념 하나씩 익히고, 마지막에 실습 프로그램을 만듭니다.
모든 예제는 CI 에서 KingSejong 최신 릴리스(v0.8.0)로 실행해 expected.out 과 출력이 같은지 확인합니다. 다음 릴리스의 기능을 쓰는 레슨(폴더에 next 파일이 있음)은 KingSejong main 으로만 확인합니다.
KingSejong 을 설치합니다. 자세한 방법은 설치 안내를 보세요.
git clone https://github.com/kingsejong-lang/kingsejong-lang.git
cd kingsejong-lang
./install.sh --system설치하지 않고 빌드만 했다면 kingsejong 대신 빌드한 실행 파일의 경로(../kingsejong-lang/build/bin/kingsejong)로
실행하세요. 경로로 실행해야 표준 라이브러리(stdlib/)를 찾습니다.
설치 없이 브라우저에서 해 보려면 플레이그라운드를 쓰세요.
| 번호 | 주제 | 배우는 것 |
|---|---|---|
| 01 | 첫 프로그램 | 출력() |
| 02 | 변수와 타입 | 정수, 실수, 문자열, 논리, 없음 |
| 03 | 연산자 | 산술, 비교, 논리 연산 |
| 04 | 문자열 | 연결, ${} 끼워 넣기, 자르기 |
| 05 | 조건문 | 만약 / 아니면 |
| 06 | 반복문 | N번 반복한다, 범위 반복, 조건 반복 |
| 07 | 함수 | 매개변수와 반환 |
| 08 | 배열 | 인덱스, 추가, 잘라내기 |
| 09 | 사전 | 키와 값 |
| 10 | 조사 표현식 | 목록을 정렬한다, 걸러낸다, 변환한다 |
| 11 | 고차 함수와 클로저 | 함수를 주고받기 |
| 12 | 재귀 | 계승, 피보나치, 하노이의 탑 |
| 13 | 클래스 | 필드, 생성자, 메서드 |
| 14 | 예외 처리 | 시도 / 오류 / 마지막 |
| 15 | 모듈 | 가져오기, 표준 라이브러리 |
| 16 | 비동기 | 비동기 함수, 대기 |
| 17 | 글자 다루기 | s[i], 문자코드, 코드문자 |
| 18 | 비트 연산 | 0x·0b 리터럴, & | ^ ~ << >> |
| 19 | 요소 반복 | 각각에 대해 |
| 20 | 비교 함수로 정렬하기 | 정렬한다(비교 함수), 길이(사전) |
| 21 | 명령줄 인자 | 명령줄_인자() |
| 22 | 모듈의 비공개 이름 | _ 로 시작하는 이름, 같은 폴더의 모듈 |
각 레슨 폴더에는 예제(main.ksj), 기대 출력(expected.out), 설명과 연습 문제(README.md)가 있습니다.
| 프로그램 | 연습하는 것 |
|---|---|
| FizzBuzz | 조건문과 나머지 연산 |
| 구구단 | 중첩 반복과 문자열 결합 |
| 에라토스테네스의 체 | 배열을 표로 쓰는 알고리즘 |
| 버블 정렬 | 배열 요소 교환 |
kingsejong lessons/01-hello-world/main.ksj예제 전체를 한 번에 확인하려면 실행 파일 경로를 KSJ 에 넣고 검사 스크립트를 돌립니다.
KSJ=../kingsejong-lang/build/bin/kingsejong scripts/check.sh예제를 고치거나 새 레슨을 추가할 때는 scripts/check.sh --update 로 expected.out 을 다시 만들고,
바뀐 출력이 의도한 것인지 확인해 주세요. 기여 방법은 조직 기여 안내를 따릅니다.
질문은 Discussions 에 남겨 주세요.
MIT-0 (MIT No Attribution). 예제 코드를 저작권 고지 없이 복사해 자기 프로그램에 써도 됩니다. KingSejong 인터프리터 자체는 MIT 입니다.