Skip to content

Repository files navigation

Kcode (KoreanCode)

한글 키워드로 작성하는 프로그래밍 언어
A programming language written entirely in Korean keywords.

License: MITLanguage: CVersion


소개

Kcode는 모든 키워드를 한글로 작성하는 프로그래밍 언어입니다.
인터프리터·C 코드 생성·LLVM IR 세 가지 실행 방식을 지원하며,
임베디드부터 AI 연동, GPU 가속까지 단일 언어로 다룰 수 있도록 설계되었습니다.

// hello.han — 첫 번째 Kcode 프로그램
헌법 안전:
법령: 참
법위반: 오류발생("계약 위반")
헌법끝
정의 인사(문자 이름 = "세상"):
출력("안녕하세요, " + 이름 + "!")
인사()
인사("Kcode")

특징

🇰🇷 완전한 한글 문법

모든 예약어가 한글입니다. if 대신 만약, while 대신 동안, class 대신 객체.

⚡ 3중 실행 백엔드

방식설명용도
인터프리터AST 직접 실행빠른 개발·스크립팅
C 코드 생성.han → C → 네이티브임베디드·크로스 컴파일
LLVM IR 생성.han → LLVM IR → 실행파일고성능·최적화

📜 계약 시스템 (Design by Contract)

IEC 61508 / ISO 26262 수준의 안전 계약을 언어 차원에서 강제합니다.
계약 없는 파일은 컴파일이 거부됩니다.

헌법 안전정책:
법령: 전류 < 10.0
법위반: 긴급정지()
헌법끝

🖥️ GPU / NPU 가속

가속기 블록으로 행렬 연산을 GPU/NPU에 자동 위임합니다.

가속기:
행렬곱(A, B) => 결과
가속기끝

🤖 AI 연동

Claude, OpenAI, Gemini, 로컬 LLM을 한 줄로 연결합니다.

AI 모델 = AI연결("claude", "api키")
글자 답변 = 모델.질문("안녕하세요")
글자 설명 = 모델.사진분석(사진원본, "이 사진을 설명해줘")

🔌 임베디드 지원

GPIO / I2C / SPI / UART / MODBUS / CAN / MQTT / ROS2를 내장 키워드로 제어합니다.

GPIO 핀 = GPIO연결(13)
핀.출력(참)
I2C 센서 = I2C연결(0x48)
실수 온도 = 센서.읽기()

자료형

키워드설명예시
정수정수 (integer)42, -7
실수실수 (float)3.14
문자문자열 (string)"안녕"
글자단일 문자 (char)'가'
논리불리언, 거짓
없음null
배열동적 배열[1, 2, 3]
사전키-값 쌍{"키": "값"}
행렬2D 배열 (AI용)[[0.1, 0.2], [0.3, 0.4]]
사진이미지 파일사진열기("photo.jpg")
그림캔버스그림만들기(800, 600)
함수형람다 변수(x) => x * x

문법 예제

기본 제어문

// 조건문
만약 점수 >= 90:
출력("A 등급")
아니면 만약 점수 >= 80:
출력("B 등급")
아니면:
출력("C 이하")
// 반복문
반복 i 부터 1 까지 10:
출력(i)
각각 값 안에 배열:
출력(값)

함수

// 반환값 있는 함수
함수 더하기(정수 가, 정수 나):
반환 가 + 나
// 반환값 없는 함수
정의 인사(문자 이름 = "손님"):
출력("안녕하세요, " + 이름)
// 람다
함수형 제곱 = (정수 x) => x * x

객체

객체 사람:
문자 이름
정수 나이
함수 생성(자신, 문자 이름, 정수 나이):
자신.이름 = 이름
자신.나이 = 나이
정의 소개(자신):
출력(자신.이름 + " / " + 자신.나이 + "살")
객체 학생 이어받기 사람:
문자 학교
홍길동 = 사람("홍길동", 20)
홍길동.소개()

예외 처리

시도:
실수 결과 = 10.0 / 입력("나눌 수: ")
출력(결과)
실패시:
출력("오류 발생")
항상:
출력("계산 완료")

이미지 처리

사진 원본 = 사진열기("photo.jpg")
원본.크기조절(640, 480)
원본.흑백()
원본.경계선()
원본.저장("결과.jpg")
배열 얼굴들 = 원본.얼굴찾기()
출력("얼굴 수: " + 얼굴들.길이())

계약 시스템

// 헌법 — 전역 최상위 계약
헌법 안전정책:
법령: 온도 < 85.0 그리고 전류 < 10.0
법위반: 긴급정지()
헌법끝
// 법령/법위반 — 함수 단위 계약
함수 나누기(실수 가, 실수 나):
법령: 나 != 0.0
법위반: 오류발생("0으로 나눌 수 없습니다")
반환 가 / 나

GPU 가속

#GPU사용
행렬 A = [[1.0, 2.0], [3.0, 4.0]]
행렬 B = [[5.0, 6.0], [7.0, 8.0]]
가속기:
행렬곱(A, B) => 결과
활성화(결과) => 출력값
가속기끝
출력(출력값)

임베디드 / IoT

헌법 IoT안전:
법령: 온도 < 80.0
법위반: 긴급정지()
헌법끝
I2C 온도센서 = I2C연결(0x48)
MQTT 브로커 = MQTT연결("192.168.1.1", 1883)
브로커.구독("센서/온도", 처리()
출력("수신 완료")
처리끝)
타이머 1000ms:
실수 온도 = 온도센서.읽기()
브로커.발행("센서/온도", 글자(온도))
타이머끝

빌드

요구사항

  • GCC 또는 Clang (C11 이상)
  • CMake 3.16 이상
  • LLVM 14+ (LLVM 백엔드 사용 시)

CMake 빌드

git clone https://github.com/your-username/KoreanCode.git
cd KoreanCode
cmake -B build
cmake --build build

Makefile 빌드

make # 인터프리터 빌드
make codegen # C 코드 생성기 빌드
make llvm # LLVM IR 생성기 빌드 (LLVM 필요)

실행

# 인터프리터 (바로 실행)
./kcode hello.han
# REPL (대화형 모드)
./kcode
# C 코드 생성
./kcode_gen hello.han
# LLVM IR 생성
./kcode_llvm hello.han

파일 확장자

확장자용도
.hanKcode 소스 파일
.hgKcode 헤더 파일

내장 함수

수학

절대 올림 내림 반올림 최대 최소
제곱 제곱근 로그 사인 코사인 탄젠트
난수 난정수 파이 자연e 무한대

문자열

길이 찾기 포함 시작 끝 자르기
바꾸기 분리 합치기 뒤집기 되풀이
대문자 소문자 다듬기 정수 실수 문자

파일 I/O

파일열기 파일닫기 파일읽기 파일쓰기
파일줄읽기 파일줄쓰기 파일전체읽기 파일전체쓰기
파일있음 파일크기 파일목록 파일지우기
파일복사 파일이동 폴더만들기

AI 수학

행렬곱 전치 역행렬 평균 분산 표준편차
시그모이드 렐루 소프트맥스 탄에이치

컴파일러 구조

.han 소스파일
│
▼
[렉서] 한글 키워드 → 토큰
│
▼
[파서] 토큰 → AST
│
▼
[계약 검증] 계약 없으면 컴파일 거부
│
├──────────────┬──────────────┐
▼ ▼ ▼
[인터프리터] [C 코드 생성] [LLVM IR 생성]
즉시 실행 → gcc 연동 → 최적화 실행파일

설계 원칙

항목결정이유
포인터없음GC 자동 관리
메모리GC 내장 (참조카운트 + 마크스윕)사용 편의성
들여쓰기Python 방식가독성
계약강제 (없으면 컴파일 거부)안전성
외부 의존성0 (순수 C 구현)이식성
키워드 길이3자 이내 권장타이핑 편의성

로드맵

단계내용상태
렉서 / 파서한글 토큰 + AST
인터프리터트리 워킹 실행
C 코드 생성AST → C
LLVM IR 생성AST → LLVM IR
바이트코드 VMAST → VM 바이트코드
계약 시스템헌법/법률/규정/법령/법위반
GPU 가속TPU/NPU/GPU/CPU 폴백
임베디드GPIO/I2C/SPI/UART/CAN/MODBUS
AI 연동LLM API + 온톨로지
REPL대화형 셸
WebAssembly브라우저 실행
MCP 서버AI 도구 프로토콜
Web IDEMonaco 편집기 + WASM🔲 예정
패키지 생태계레지스트리 + FFI🔲 예정

라이선스

MIT License — 자유롭게 사용, 수정, 배포 가능합니다.


계약 없는 코드는 Kcode가 아니다.

About

KoreanCode (Kcode): A next-generation AI-centric programming language designed to make building and governing AI simple and safe, powered by a robust Contract System for autonomous control and high-performance C-backed execution.

Topics

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages