1 / 8
레슨 1 — 시작하기

한선씨 첫걸음

한선씨는 한국어 키워드를 사용하는 프로그래밍 언어입니다. 변수를 선언하고 화면에 출력하는 것부터 시작합니다.

변수 선언

변수 키워드로 변수를 선언합니다. 숫자, 문자열, 참/거짓 모두 담을 수 있습니다.

  • 변수 이름 = "세계" — 문자열
  • 변수 나이 = 25 — 숫자
  • 변수 활성 = 참 — 불리언

출력

출력값 함수로 화면에 내용을 출력합니다. 문자열과 숫자를 +로 연결할 수 있습니다.

  • 출력값("안녕 세계!") — 문자열 출력
  • 출력값("나이: " + 문자열변환(나이)) — 숫자를 문자열로 변환 후 연결
!
숫자를 문자열과 연결할 때는 반드시 문자열변환()으로 변환해야 합니다. "값: " + 문자열변환(42)처럼 사용하세요.
코드 편집기 — 직접 수정해 보세요
첫걸음.한선
Ctrl+Enter로도 실행할 수 있습니다
실행 결과
실행 버튼을 눌러 결과를 확인하세요
1 / 8
레슨 2 — 함수

함수와 반환

함수는 코드를 재사용 가능한 블록으로 묶습니다. 함수 키워드로 선언하고 반환으로 값을 돌려줍니다.

함수 선언

함수는 이름, 매개변수, 본문으로 구성됩니다.

  • 함수 이름(매개변수1, 매개변수2) { ... }
  • 매개변수가 없으면 함수 이름() { ... }
  • 반환 으로 값을 반환합니다

함수 호출

함수를 호출할 때는 이름 뒤에 괄호를 붙이고 인자를 넣습니다.

  • 변수 결과 = 제곱(5) — 반환값을 변수에 저장
  • 출력값(문자열변환(인사("철수"))) — 반환값을 바로 출력
코드 편집기
함수.한선
실행 결과
실행 버튼을 눌러 결과를 확인하세요
2 / 8
레슨 3 — 제어흐름

조건과 반복

만약/아니면으로 조건 분기를 처리하고, 동안 루프로 반복 작업을 수행합니다.

조건문 — 만약 / 혹시 / 아니면

  • 만약 (조건) { ... } — 기본 if
  • 혹시 (조건) { ... } — else if
  • 아니면 { ... } — else
  • 비교: == != < > <= >=
  • 논리: 그리고 (and), 또는 (or)

반복문 — 동안

조건이 참인 동안 블록을 반복 실행합니다.

  • 동안 (조건) { ... }
  • 중단 — 루프 즉시 종료
  • 계속 — 다음 반복으로 건너뜀
!
3진법 한선씨의 특별한 논리값: (T, +1), 거짓(A, −1), 모르면(O, 0). 모르면은 불확실한 상태를 표현할 때 사용합니다.
코드 편집기
조건반복.한선
실행 결과
실행 버튼을 눌러 결과를 확인하세요
3 / 8
레슨 4 — 자료구조

배열과 맵

여러 값을 묶어 관리할 때 배열과 맵을 사용합니다. 배열은 순서가 있는 목록이고, 맵은 키-값 쌍의 구조입니다.

배열

  • 변수 목록 = [1, 2, 3] — 배열 리터럴
  • 추가(목록, 4) — 요소 추가
  • 설정(목록, 0, 99) — 인덱스 0에 값 설정
  • 길이(목록) — 배열 길이
  • 정렬(목록) — 오름차순 정렬
  • 목록[0] — 인덱스로 접근

맵 (해시맵)

  • 변수 사람 = 맵생성() — 빈 맵 생성
  • 맵넣어(사람, "이름", "철수") — 키-값 삽입
  • 맵꺼내(사람, "이름") — 키로 값 조회
  • 맵키목록(사람) — 모든 키 목록 반환
코드 편집기
배열맵.한선
실행 결과
실행 버튼을 눌러 결과를 확인하세요
4 / 8
레슨 5 — 문자열

문자열 다루기

한선씨의 강력한 문자열 처리 함수들을 배웁니다. 글자 단위 접근, 부분 추출, 검색, 변환 등을 지원합니다.

핵심 문자열 함수

  • 글자수(문자열) — 문자열 길이 (글자 수)
  • 글자(문자열, 인덱스) — 특정 위치 글자 하나
  • 부분(문자열, 시작, 끝) — 부분 문자열 추출
  • 포함(문자열, 검색어) — 포함 여부 (1=있음, 0=없음)
  • 문자열변환(숫자) — 숫자 → 문자열
  • 숫자변환(문자열) — 문자열 → 숫자

팁: 문자열 순회

글자수글자를 조합하면 문자 단위로 순회할 수 있습니다.

코드 편집기
문자열.한선
실행 결과
실행 버튼을 눌러 결과를 확인하세요
5 / 8
레슨 6 — 3진법

3진법 체험

한선씨의 핵심인 4상균형3진법을 체험합니다. T(+1), O(0), A(−1)의 세 값과 U(구분자)로 모든 연산이 이루어집니다.

T 타(+1) 데이터·참
O 오(0) 명령·모름
A 아(−1) 체이닝·거짓
U 유 구분자·경계

3진법 내장함수

  • 삼진인코딩(숫자) — 10진수 → T/O/A 3진 문자열
  • 삼진디코딩(문자열) — T/O/A 3진 문자열 → 10진수
  • 삼진덧셈(a, b) — 3진수 덧셈 (T/O/A 문자열)

Kleene 3값 논리

한선씨는 참/거짓 외에 모르면(불확실)을 지원합니다. 이는 양자 컴퓨팅과 불완전 지식 처리에 자연스럽게 대응됩니다.

  • → T (+1)
  • 거짓 → A (−1)
  • 모르면 → O (0)
코드 편집기
삼진법.한선
실행 결과
실행 버튼을 눌러 결과를 확인하세요
6 / 8
레슨 7 — 저수준

RPN 모드

RPN(역폴란드 표기법)은 한선씨의 저수준 표현입니다. 스택 기반 연산으로 ISA729 opcode와 1:1로 대응합니다.

RPN이란?

일반적인 표기법 3 + 4를 RPN으로는 3 4 더해로 씁니다. 연산자가 피연산자 뒤에 오며, 스택에 값을 쌓고 연산자가 스택을 처리합니다.

  • 3 4 더해 → 3+4 = 7
  • 10 3 빼기 → 10-3 = 7
  • 5 2 곱해 → 5×2 = 10
  • 보여줘 → 스택 상단 출력
  • — 프로그램 종료

RPN과 고수준의 관계

고수준 한선씨 코드는 컴파일 시 자동으로 RPN → TOAU 기계어로 변환됩니다. RPN을 직접 작성하면 ISA729 opcode 수준의 제어가 가능합니다.

!
브라우저 인터프리터는 고수준(hanseonc_high) 모드만 지원합니다. RPN 예제는 고수준 문법으로 작성되어 있으며, 실제 RPN 실행은 서버 API 또는 로컬 설치가 필요합니다.
코드 편집기 — 동등한 고수준 코드
rpn동등.한선
실행 결과
실행 버튼을 눌러 결과를 확인하세요
7 / 8
레슨 8 — 하드웨어

FPGA 회로

한선씨는 소프트웨어 뿐만 아니라 하드웨어도 기술할 수 있습니다. 회로/끝회로 방언으로 디지털 논리를 한글로 표현합니다.

회로 방언 핵심 키워드

  • 가져오기 "하드웨어.한선" — 하드웨어 라이브러리 임포트
  • 모듈 이름 { ... } — 하드웨어 모듈 선언
  • 입력 신호명 — 입력 포트 선언
  • 출력 신호명 — 출력 포트 선언
  • 레지스터 변수 — 플립플롭 레지스터
  • 항상 (클럭 올라갈때) — 클럭 에지 트리거

전가산기 (Full Adder)

두 1비트 입력(a, b)과 올림수 입력(cin)을 받아 합(sum)과 올림수 출력(cout)을 생성하는 기본 회로입니다.

  • sum = a XOR b XOR cin
  • cout = (a AND b) OR (b AND cin) OR (a AND cin)
!
브라우저 인터프리터는 소프트웨어 시뮬레이션으로 회로 로직을 실행합니다. 실제 FPGA 합성은 로컬 설치 후 crownyc fpga load 명령을 사용하세요.
코드 편집기 — 회로를 소프트웨어로 시뮬레이션
전가산기.한선
실행 결과
실행 버튼을 눌러 결과를 확인하세요
8 / 8
🎉

튜토리얼 완료!

한선씨의 8가지 핵심 개념을 모두 배웠습니다.
이제 플레이그라운드에서 자유롭게 코딩하거나,
문서에서 더 깊은 내용을 탐구하세요.