BERK 프로그래밍 언어
버크, 세계 최초로 진정한 이중 언어 구문(터키어/영어)으로 설계되었습니다.임베디드 시스템 및 AI/ML 생산최적화된 고성능 시스템 프로그래밍 언어입니다.C/C++ 수준 성능19개의 다양한 대상 플랫폼(ARM Cortex-M, RISC-V, ESP32, x64/ARM 데스크탑, WebAssembly)에서 생산성을 제공합니다.
📖 BERK라는 이름을 선택한 이유는 무엇인가요?
Öztürk 원산지: "강하고, 강하고, 단단합니다"
버크Öztürk의 단어"강하고, 내구성이 있고, 강하고 견고하다"수단. 이러한 특성은 프로그래밍 언어의 기술적 목표인 메모리 안전성, 유형 시스템 정확성, 강력한 컴파일러 아키텍처 및 안정적인 성능과 직접적으로 일치합니다.
아랍어의 의미: "번개"
터키어에서 발견되는 또 다른 의미는 **"번개"**입니다. 이 의미는 속도, 성능 및 민첩성에 대한 BERK 언어의 비전, 즉 LLVM, C++ 수준 성능 및 최적화된 커널 아키텍처를 기반으로 한 빠른 컴파일을 나타냅니다.
의미의 조합
BERK, 둘 다 터키 출신견고성개념뿐만 아니라 현대 기술의 세계에서도속도와 민첩성컨셉을 결합하여 강력한 브랜드 아이덴티티를 만들어냅니다.
국제적으로
버크,효율성이 뛰어난 런타임 커널(효율성을 뛰어넘는 런타임 코어).
📥 다운로드 및 설치
윈도우 x64(v1.0.0)
최신 버전:BERK v1.0.0(2025년 12월 2일)
차원:~3.8MB(3개 파일)
플랫폼:Windows 10/11(64비트)
🔗 다운로드 링크
- ⬇️ BERK-lang.exe 다운로드- 컴파일러(2.2MB)
- ⬇️ berk-lsp.exe 다운로드- 언어 서버(1.2MB)
- ⬇️ berk-repl.exe 다운로드- REPL(464KB)
- 📚 문서(PDF)- 전체 가이드
- 📖 온라인 소책자- 대화형 문서
설정
# 1. BERK-lang.exe'yi indirin
# 2. İstediğiniz bir klasöre kopyalayın (örn: C:\BERK)
# 3. PATH'e ekleyin:
$env:PATH += ";C:\BERK"
# Test edin
BERK-lang --version
빠른 시작
옵션 1: 대화형 REPL(인스턴트 테스트)
# REPL'i başlatın
BERK-lang repl
# Kod yazın and Enter'a basın - anında çalışır!
>>> print("Merhaba, BERK!")
Merhaba, BERK!
>>> let x = 5 + 3
>>> print(x * 2)
16
옵션 2: 컴파일(네이티브 실행 파일)
# İlk programınızı yazın (merhaba.berk)
function main() -> int
do
print("Merhaba, BERK!")
return 0
end
# LLVM ile native kod üretin
BERK-lang compile merhaba.berk -o merhaba.exe
# Çalıştırın (artık bağımsız executable)
.\merhaba.exe
옵션 3: JIT 실행(컴파일 + 실행)
# Direkt çalıştır (arka planda LLVM JIT)
BERK-lang run merhaba.berk
기타 플랫폼
리눅스와 macOS:소스 코드에서 컴파일이 필요합니다.
# Rust toolchain kurulumu
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# BERK'u derleyin
git clone https://github.com/ArslantasM/berk
cd berk/berk-lang
cargo build --release --features llvm
🌟 BERK를 특별하게 만드는 기능
🔧 임베디드 시스템 및 AI/ML에 최적화됨
버크,임베디드 시스템과 인공지능 생산다음을 위해 설계된 언어입니다.
- 베어메탈 프로그래밍: RTOS 없이 직접 하드웨어 액세스
- ARM Cortex-M/RISC-V 지원: STM32, ESP32, Nordic nRF 등 널리 사용되는 MCU
- 최소 런타임: 2-5KB 메모리 오버헤드, 중요한 애플리케이션에 이상적
- AI/ML 추론: ONNX Runtime 통합, Edge AI에 최적화된 라이브러리
- 고성능 컴퓨팅: SIMD, 벡터화, 비용이 들지 않는 추상화
- 실시간 보증: 결정적 타이밍, 인터럽트 처리, DMA 지원
- 크로스 컴파일: 데스크탑에서 단일 명령으로 ARM/RISC-V 대상으로 컴파일
🌍 세계 최초: 진정한 이중 언어 구문
프로그래밍 언어로는 처음으로,같은 컴파일러에서터키어와 영어 키워드를 모두 사용하여 코드를 작성할 수 있습니다. 이는 단순한 번역이 아니라, 언어 고유의 특징입니다.
⚡ C/C++/Rust 수준 성능 + AI/ML 최적화
- LLVM 백엔드: 네이티브 코드 생성을 통한 제로 비용 추상화
- 벤치마크 결과: C++와 98-100% 성능 동일
- AI/ML 워크로드: ONNX를 사용한 TensorFlow/PyTorch 모델의 추론(에지 장치)
- SIMD/벡터화: AVX2, NEON, RISC-V 벡터 확장 지원
- 메모리 효율성: 수동 제어 + 보안 보장, 임베디드에 매우 중요
- 최적화 수준: O0-O3 + LTO 사이의 공격적인 최적화(Link-Time Optimization)
- 임베디드 ML: TinyML, 양자화, 모델 압축 지원
🧠 규칙 기반 AI 접근 방식 + ML 생산
컴파일러,규칙 기반 인공 지능기술 사용:
- 지능형 오류 감지 및 권장 사항(AI 기반 오류 복구)
- 코드 최적화 결정(ML 기반 최적화)
- 유형 추론 및 분석(정적 분석 + 추론)
- 의미 분석을 통한 품질 보증
AI/ML 생산 파이프라인:
- 모델 훈련: Python/PyTorch를 이용한 학습, ONNX 내보내기
- 모델 최적화: 양자화(INT8/INT16), 가지치기, 증류
- 엣지 배포: ARM Cortex-M, ESP32, RISC-V에 대한 추론
- 실시간 추론: <10ms 지연 시간, 임베디드 장치의 AI
- TinyML 지원: TensorFlow Lite, ONNX 런타임 통합
- 하드웨어 가속: NPU, DSP, GPU 오프로딩(Metal, CUDA, Vulkan)
🔬 종합 표준 라이브러리(stdlib v0.9.4)
75개 모듈(42 stdlib + 33 HAL),4100개 이상의 기능, 1140KB암호:
- 과학적 계산: 수학, 선형, 통계, 최적, 물리학, 복잡함, 무작위
- 임베디드 시스템(HAL): 33개 모듈 - GPIO, UART, SPI, I2C, WiFi, Bluetooth, 타이머, DMA
- 7 플랫폼 지원: ESP32, STM32F4, RP2040, nRF52, GD32, 누보톤, 아두이노
- 웹 및 데이터: http, json, xml, yaml, csv, sqlite, async
- 그래픽 및 게임플레이: GUI, 그래픽, 오디오, 이미지,Physics2d,cad3d
- NumPy/SciPy/줄리아수준의 과학 컴퓨팅
🚀 19개의 다양한 대상 플랫폼(임베디드 우선)
크로스 컴파일 지원:
- 임베디드(우선순위): ARM Cortex-M0/M3/M4/M7, RISC-V(32/64비트), AVR, ESP32/ESP8266, Nordic nRF52/nRF53
- 데스크탑: 윈도우(x64/ARM), 리눅스(x64/ARM/RISC-V), macOS(인텔/애플 실리콘)
- 이동하는: 안드로이드(ARM/x86), iOS(ARM64)
- 웹어셈블리: 브라우저 및 서버(WASI)
- 구름: AWS Lambda, Azure Functions, Google Cloud Run
- IoT 플랫폼: 라즈베리파이, 비글본, 엔비디아 젯슨(엣지 AI)
지원되는 MCU 제품군:STM32, ESP32, Nordic nRF, 마이크로칩 SAM, TI MSP430, SiFive HiFive, Kendryte K210
📚 배우기 매우 쉽습니다.
- 직관적인 구문: Python의 단순함 + Rust의 힘
- 터키 문서: 70페이지 이상의 종합 가이드
- 오류 메시지 지우기: 솔루션 제안 포함
- 학습 곡선: 1~2주 안에 생산성을 발휘하세요
🔧 고급 임베디드 시스템 기능
- 베어메탈 프로그래밍: RTOS가 없는 하드웨어 제어(GPIO, UART, SPI, I2C)
- RTOS 통합: FreeRTOS, Zephyr, RIOT-OS와 원활하게 작동
- HAL 추상화: 플랫폼에 구애받지 않는 하드웨어 계층(ARM, RISC-V, AVR)
- 인터럽트 처리: 제로 오버헤드 인터럽트 핸들러, 중첩된 인터럽트
- DMA 지원: 직접 메모리 액세스, 비동기 데이터 전송
- 전원 관리: 절전 모드, 저전력 최적화, 배터리 구동 장치
- 최소 런타임: 2-5KB 오버헤드, 8비트 MCU에서도 작동
- 부트로더 지원: OTA 업데이트, 보안 부팅, 펌웨어 서명
왜 버크인가?
🎯 학계 및 연구원용
- 과학적 계산: NumPy/SciPy/MATLAB 레벨 라이브러리
- 성능: C++ 속도, Python의 용이성
- 재현성: 결정론적 컴파일, 재현 가능한 빌드
- 출판: 터키 학술 출판물에 적합
💼 업계 전문가용
- 생산 준비 완료: C/C++/Rust에 필적하는 성능
- 크로스 플랫폼: 단일 코드베이스, 19개 플랫폼
- 유지 관리성: 읽기 쉬운 코드, 손쉬운 리팩토링
- 상호 운용성: C/C++ FFI, 기존 시스템에 통합
- 비용 효율적: 버그가 적고 개발 속도가 빨라집니다.
🎓 교육자 및 학생용
- 터키어 콘텐츠: 모국어로 프로그래밍 학습
- 현대 개념: 타입 안전성, 패턴 매칭, 오류 처리
- 이지패스: Python에서 왔기 때문에 자연스럽고 C++로 연결됩니다.
- 실제 사례: 실제 응용
1. 세계 최초: 진정한 이중 언어 구문
// Türkçe
function selamla(isim: yazı) -> yazı
do
return "Merhaba, " + isim + "!"
end
// English (aynı derleyici!)
function greet(name: string) -> string
do
return "Hello, " + name + "!"
end
// Karışık kullanım bile mümkün
function hesapla(sayı: int) -> int
do
if sayı > 0
return sayı * 2
else
return 0
end
end
2. 현대적이고 안전함
- ✅ 강력한 유형 시스템
- ✅ 메모리 보안
- ✅ 안전하지 않음
- ✅ 패턴 매칭
- ✅ 오류 처리
3. 고성능 + LLVM 백엔드
- 네이티브 코드 생성 -C++와 98-100% 성능 패리티
- 19가지 아키텍처 지원(x64, ARM, RISC-V, WebAssembly 등)
- 최적화 수준(O0-O3)
- 크로스 컴파일 -하나의 코드, 19개의 플랫폼
- 비용이 들지 않는 추상화
- 인라인 어셈블리 지원
4. 종합 표준 라이브러리(stdlib v0.9.4)
use linalg, stats, optim
// Linear Algebra
let A = linalg.matris_oluştur([[1, 2], [3, 4]])
let B = linalg.matris_çarp(A, linalg.transpose(A))
let (L, U) = linalg.lu_ayrıştır(A)
// İstatistik
let veri = [1.2, 2.3, 3.4, 4.5, 5.6]
let ort = stats.avg(veri)
let std = stats.standart_sapma(veri)
let (r, p) = stats.korelasyon(x, y)
// Optimizasyon
let minimum = optim.gradient_descent(function, x0, öğrenme=0.01)
let sonuç = optim.bfgs(maliyet, başlangıç)
4. 개발자 친화적
- 포괄적인 문서(70페이지 이상, 터키어)
- 오류 메시지 지우기(제안된 해결 방법 포함)
- VS Code 플러그인(구문 강조, 자동 완성, 디버깅)
- REPL(대화형 셸) - 즉시 테스트
- 풍부한 테스트 인프라
- 쉬운 학습: 1~2주 안에 생산 가능
빠른 시작
설정
# Rust toolchain gerekli
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# BERK'u derle
git clone https://github.com/ArslantasM/berk
cd berk/berk-lang
cargo build --release --features llvm
# PATH'e ekle
export PATH="$PWD/target/release:$PATH"
첫 번째 프로그램
// merhaba.berk
function main() -> int
do
print("Merhaba, BERK!")
return 0
end
# Derle ve çalıştır
BERK-lang merhaba.berk -o merhaba.exe
./merhaba.exe
# Çıktı: Merhaba, BERK!
이 책에 대하여
이 책은 BERK 프로그래밍 언어를 배우기 위한 포괄적인 자료입니다.러스트북그리고파이썬 문서등의 리소스의 장점을 모아 준비했습니다.
대상 그룹
- 프로그래밍 초보자
- 숙련된 개발자
- 시스템 프로그래머
- 터키어 콘텐츠를 찾는 개발자
책을 어떻게 활용해야 할까요?
- 순차적 읽기: 처음부터 끝까지 순서대로 읽는 것을 권장합니다.
- 예제를 사용해 보세요: 각 예제를 자신의 컴퓨터에서 실행해 보세요.
- 수업 과정: 각 장의 마지막에 연습을 수행합니다.
- 참조: 필요할 때마다 참조 섹션으로 돌아갑니다.
언어철학
BERK의 기본 설계 원칙:
1. 접근성
터키어 키워드 덕분에 영어를 못하는 사람들도 프로그래밍에 쉽게 들어갈 수 있게 되었습니다.
2. 보안
컴파일 타임에 메모리 오류를 포착합니다. 런타임 오류를 최소화합니다.
3. 성능
LLVM 백엔드 덕분에 C/C++ 수준의 성능을 제공합니다.
4. 읽기 쉬움
명확하고 이해하기 쉬운 구문. 코드를 작성하기보다는 코드를 읽는 데 최적화되어 있습니다.
5. 상호 운용성
C/C++ 라이브러리와 호환됩니다. 기존 생태계에 통합될 수 있습니다.
하이라이트
현대적인 유형 시스템
let x: int = 42
let isim: yazı = "Ahmet"
let aktif: bool = true
let sayılar: List<int> = [1, 2, 3]
let nokta: Tuple<int, int> = (10, 20)
패턴 매칭
match case mesaj
case "başarılı":
print("İşlem tamamlandı!")
case "hata":
print("Bir hata oluştu!")
case _:
print("Bilinmeyen case")
end
문자열 연산(UTF-8)
let mesaj = "Merhaba Dünya! 🌍"
let len = len(mesaj)
let birleşik = "Hello " + "World"
오류 관리
try
let dosya = aç("data.txt")
print(input(dosya))
catch hata
print("Dosya açılamadı: " + hata)
end
컴파일러 아키텍처
BERK 컴파일러는 현대적인 구조를 가지고 있습니다:
Kaynak Kod (.berk)
↓
Lexer (Token Üretimi)
↓
Parser (AST Oluşturma)
↓
Semantic Analysis (Tip Kontrolü)
↓
CFG Analysis (Dataflow Analysis)
↓
IR Generation (BERK IR)
↓
IR Optimization (O0-O3)
↓
LLVM IR Generation
↓
Machine Code (.exe/.o)
프로젝트 현황
현재 버전:v1.0.0
마지막 업데이트:2025년 11월 18일
상황:적극적인 개발
완성된 기능 ✅
- 렉서 및 파서(100%)
- 유형 시스템 (100%)
- LLVM 백엔드(100%)
- CFG분석(100%)
- IR 옵티마이저(100%)
- REPL (100%)
- VS 코드 확장(100%)
진행중인 연구
- 런타임 라이브러리
- 표준 라이브러리
- 패키지 관리자
- 디버거 통합
자세한 로드맵은로드맵페이지를 참조하세요.
커뮤니티와 공헌
BERK는 오픈 소스 프로젝트이며 기여를 환영합니다!
- GitHub: ArslantasM/berk
- 문제:버그 보고서 및 기능 요청
- 토론:커뮤니티 토론
- 기여: 투고 가이드
추가 리소스
준비됐나요? 설정섹션부터 시작하겠습니다!