나무모에 미러 (일반/어두운 화면)
최근 수정 시각 : 2024-10-12 23:43:24

한글 프로그래밍 언어

프로그래밍 사이트 선정 프로그래밍 언어 순위 목록
{{{#!wiki style="margin: 0 -10px -5px; word-break: keep-all"
{{{#!wiki style="display: inline-table; min-width: 25%; min-height: 2em;"
{{{#!folding [ IEEE Spectrum 2024 ]
{{{#!wiki style="margin: -5px 0"
<rowcolor=#fff> 스펙트럼 부문 상위 10개 프로그래밍 언어 직업 부문 상위 10개 프로그래밍 언어
1 Python 1 SQL
2 Java 2 Python
3 JavaScript 3 Java
4 C++ 4 TypeScript
5 TypeScript 5 SAS
6 SQL 6 JavaScript
7 C# 7 C#
8 Go 8 HTML
9 C 9 Shell
10 HTML 10 C++
}}}
}}}
}}}
[ Stack Overflow 2024 ]
||<tablewidth=100%><width=9999><-4><bgcolor=#FFA500><tablebgcolor=#fff,#222> 2024년 Stackoverflow 설문조사 기준 인기 상위 25개 프로그래밍 언어 ||
1 JavaScript 14 Rust
2 HTML, CSS 15 Kotlin
3 Python 16 Lua
4 SQL 17 Dart
5 TypeScript 18 어셈블리어
6 Bash 19 Ruby
7 Java 20 Swift
8 C# 21 R
9 C++ 22 Visual Basic
10 C 23 MATLAB
11 PHP 24 VBA
12 PowerShell 25 Groovy
13 Go
[ TIOBE 2024 ]
||<tablewidth=100%><width=9999><-4><bgcolor=deepskyblue><tablebgcolor=#fff,#222> 2024년 8월 기준 검색어 점유율 상위 20개 프로그래밍 언어 ||
1 Python 11 MATLAB
2 C++ 12 Delphi / Object Pascal
3 C 13 PHP
4 Java 14 Rust
5 C# 15 Ruby
6 JavaScript 16 Swift
7 SQL 17 Assembly language
8 Visual Basic 18 Kotlin
9 Go 19 R
10 Fortran 20 Scratch
{{{#!wiki style="margin: 0 -10px -5px; min-height: calc(1.5em + 5px);"
{{{#!folding [ 21위 ~ 50위 펼치기 · 접기 ]
{{{#!wiki style="margin: -5px -1px -11px"
21 COBOL 36 Scala
22 Classic Visual Basic 37 Transact-SQL
23 LISP 38 PL/SQL
24 Prolog 39 ABAP
25 Perl 40 Solidity
26 (Visual) FoxPro 41 GAMS
27 SAS 42 PowerShell
28 Haskell 43 TypeScript
29 Dart 44 Logo
30 Ada 45 Wolfram
31 D 46 Awk
32 Julia 47 RPG
33 Objective-C 48 ML
34 VBScript 49 Bash
35 Lua 50 Elixir
}}}}}}}}} ||
[ PYPL 2024 ]
||<tablewidth=100%><width=9999><-4><bgcolor=green><tablebgcolor=#fff,#222> 2024년 8월 기준 검색어 점유율 상위 20개 프로그래밍 언어 ||
1 Python 11 Objective-C
2 Java 12 Go
3 JavaScript 13 Kotlin
4 C# 14 MATLAB
5 C/C++ 15 PowerShell
6 R 16 VBA
7 PHP 17 Dart
8 TypeScript 18 Ruby
9 Swift 19 Ada
10 Rust 20 Lua

}}} ||
프로그래밍 언어 목록 · 분류 · 문법

1. 개요2. 한국어 구조의 문제점3. 한글 프로그래밍 언어의 필요성4. 역사와 개발현황
4.1. 연구용 한글 프로그래밍 언어4.2. 실용성 있는 한글 프로그래밍 언어
4.2.1. 말씨4.2.2. 씨앗4.2.3. 두리틀4.2.4. 한플4.2.5. 도깨비4.2.6. 기타
4.3. 난해한 한글 프로그래밍 언어
5. 구조6. 목록7. 관련 문서8. 외부 링크

1. 개요

한글로 작성된 프로그래밍 언어.

대개의 유명 프로그래밍 언어는 영어로 되어 있다. 이는 한국인 일반 대중 학습자가 사용하기에 불편하다는 단점이 있다. 따라서 한국어의 구조적 특징에 일치하면서, 프로그램이 쉽고 간단할 뿐 아니라 읽기 쉽고 또한 기존의 컴파일링 방법에 잘 적용될 수 있는 한글 프로그래밍 언어를 개발하고자 하는 노력이 계속되어 왔다.

한글 처리에 관한 연구는 한글 코드의 표준화, 한글 모아쓰기, 한글 편집 처리 등에 국한되어 왔으나 한글 프로그래밍 언어의 개발에도 적용될 필요가 있다.

한글 프로그래밍 언어가 개발돼야 하는 가장 큰 이유 중의 하나가 영어를 모르는 어린 아이들이 컴퓨터를 쉽게 사용할 수 있도록 하자는데 있었다. 프로그래밍 언어의 영어 단어의 뜻말을 알고 보면 생각보다 쉽다.

2. 한국어 구조의 문제점

한국어의 기본구조는 동사가 문장의 마지막에 나가고, 조사라는 첨가어가 붙으므로 프로그래밍 언어를 쉽게 설계할 수 없다. 하지만 영어로 된 프로그래밍 언어도 대부분 독자적인 문법을 가지지 영어 문법을 따르는 경우는 거의 없다. 프로그래밍 언어의 문법은 프로그램 개발의 편리함을 위해 고안되는 것이지 기존 언어 문법을 따를 필요는 없다.(게다가 위의 문제점에 대한 지적은 '한글'이라는 문자에 대한 지적이 아니라 '한국어'라는 언어에 대한 지적이다.)

3. 한글 프로그래밍 언어의 필요성

#!syntax cpp
#include <stdio.h>
typedef int 정수;
typedef char 문자;
#define 출력 printf
#define 반환 return
#define 진입점 main

정수 진입점(정수 매개변수개수, 문자 **매개변수목록)
{
	출력("안녕 세상!");
	반환 0;
}
참고로 Hello, world! 같은 경우는 일반명사로 굳어져 버려서 영어로 써도 되지만, 완전히 한글로 만들기 위해서는 이것도 할 수 있으면 번역하는 추세이다.

컴파일러에 따라 매크로 변수를 한글로 지정하지 못할 수도 있다.

사실 기존의 상용 프로그래밍 언어(C언어, Java, Python 등)로도 한글로 프로그래밍 할 수 있다. 이미 유니코드를 지원하는 컴파일러가 제법 많기 때문. 예약어랑 라이브러리의 함수들만 번역하거나, 개별 프로젝트라면 라이브러리를 직접 접근할 필요가 없도록 함수나 클래스로 감싼다면 이미 한글로도 문제 없이 프로그래밍이 가능하다.

따라서, 사실상 현 시점에 한글 프로그래밍 언어가 개발될 이유가 없다. 개발된다면 '한글로 프로그래밍을 할 수 있다' 외에 다른 장점이 제시돼야 할 것이다.

기존의 프로그래밍언어는 대부분 '로마자'로 입력된다.

로마자는 구조적인 한계가 있는데, 함수나 변수의 이름을 지을 때나 언어의 기능을 지을 때 좌우로 너무 긴 문제가 발생한다. 이 때문에 함수명을 지을 때 '축약어'를 사용하면 되지 않느냐 하겠지만, 축약어를 사용하면 문자가 좌우로 짧아지는 대신 가독성이 매우 떨어진다.

똑같은 발음이라도 한글로 표현하면 로마자로 표현할 때보다 훨씬 간결해진다.

한글은 '조합자'라는 특성상 짧고 간결하게 많은 의미를 담을 수 있다는 점에서 프로그래밍에 이점이 있다고 본다. 단, 한글이 조합자라는 특성 때문에 로마자보다 간결할진 몰라도 타이핑 해야하는 숫자가 많아짐을 명심하자.

4. 역사와 개발현황

4.1. 연구용 한글 프로그래밍 언어

한글 프로그래밍 언어를 최초로 시도한 것은 70년대 중반에 KIST(현 카이스트) 전산실에서였다. FORTRAN 언어의 명령어만을 단순히 한글로 바꾸어서 설계했으며, 구현 방법은 한글 명령어를 대응하는 FORTRAN 명령어로 변환시켜 주는 간결한 전처리 기법을 사용했다.

그 후 1980년 초에 홍익대학교에서 파스칼 언어의 부분 개념을 중점으로 하여 Tiny PASCAL과 비슷한 블록구조와 간결한 자료형과 다양한 프로그램 제어분들을 포함한 한글 프로그래밍 언어를 설계했다. 이 언어의 설계에서 중요시한 것은 구현할 때를 고려하여 술어를 없애 가져오는 것과 적당한 수식어를 앞에 오게 하여 언어의 구문이 LL 파싱을 가능하게 하는 것이었기에 우리말 표현과는 약간 차이를 보이긴 했지만 파스칼로 코딩한 것보단 읽기 편했다. 한국과학기술원에서도 구조적 프로그래밍이 가능한 FORTRAN 언어와 같은 개념으로 HANSFOR라는 한글 프로그래밍 언어를 설계해서 전처리기로 구현했다. 또한 서울대학교에서는 술어가 뒤에 오는 우리나라 말은 그대로 프로그래밍 언어로의 변환이 불가능하니 LL 또는 LR 언어가 될 수 있도록 부사를 앞에 오게 하거나 순서를 바꿔도 무리없게 하는 방법에 대한 연구가 깊이 이루어졌다.[1]

지금까지 설계되고 구현된 언어들은 모두 연구실에서 연구용으로 개발됐다.

4.2. 실용성 있는 한글 프로그래밍 언어

자료가 적은 편이다. 아래 해당 문서는 '간결한 한글 프로그래밍 언어 "새싹"' 논문을 참고하여 작성했다.[2]

4.2.1. 말씨

문법적으로 올바른 한국어로, 한글만으로 프로그래밍하는 것을 기초로 하는 언어이다. 문법적으로 올바르다는 점에서 배워 사용할 때 문장을 쓰듯이 자연스럽다. 한글과 띄어쓰기만으로 코딩하기 때문에 구문도, 변수도 한글로 입력해야 하며, 심지어 숫자도 '숫자 이백이십' 처럼 한글로 입력해야 한다. 깃허브 에서 예제와 함께 배우고 여기 에서 코딩해 볼 수 있다.

4.2.2. 씨앗

파일:상세 내용 아이콘.svg   자세한 내용은 씨앗(프로그래밍 언어) 문서
번 문단을
부분을
참고하십시오.
1994년 나눔기술에서 개발한 한글 프로그래밍 언어이다. 씨앗은 키워드가 한글로 구성되어 있음은 물론, 문법 구조가 한국어와 비슷한 구조로 되어 있기 때문에 한글을 사용하는 사람들이 구상한 내용을 그대로 프로그램으로 옮길 수 있다. 또한, 구문은 세미콜론이 아닌 마침표로 끝나기 때문에 프로그램을 문장을 쓰듯이 쉽게 작성할 수 있다. 씨앗의 문장 구조는 C와 유사하지만 오류 메시지가 한국어로 출력되기 때문에 초보자도 쉽게 사용할 수 있다.

4.2.3. 두리틀

교육용으로 설계된 일본어 프로그래밍 언어의 하나로 카네무네 스스무 교수와 쿠노 야스시 교수가[3] 2000년에 개발한 언어이다. 두리틀 한글화는 고려대학교 이원규 교수가 수행했다. Scratch나 Entry와 같이 블록을 조립하는 형태로 프로그래밍하는 것이 아닌, 텍스트 기반의 프로그래밍을 통해 더욱 정교하게 표현할 수있는 장점이 있다. 또한, 일본어 프로그래밍 언어를 번역했기 때문에 한국어와 어순이 유사하여 초보자도 쉽게 프로그래밍할 수 있다.

4.2.4. 한플

2013년 부산대 프로그래밍언어 연구실에서 개발된 한글 프로그래밍 언어이다. 한플은 C 언어를 기반으로 설계됐으며 C 언어의 표준 라이브러리를 지원한다. 또한, C 언어에서 어려운 포인터를 사용하지 않으면서도 C 수준의 표현 능력을 제공한다. 하지만 제공하는 키워드가 C에서 사용되는 키워드를 번역한 수준에서 머무르기 때문에 어색한 부분이 존재한다.

4.2.5. 도깨비

최대한 한국어로 작성된 코드가 자연스럽게 읽힐 수 있게 만든 한글 프로그래밍 언어이다. 도깨비는 처음 설계될 때 C#으로 설계되었지만, 현재에는 C++로 이주하는 작업을 진행하고 있다. 도깨비는 빌드가 되면, 최종적으로 Python으로 변환되고 파이썬 인터프리터를 통해서 실행이 된다. 아직 이주 작업이 초기 단계임에도 언어가 쉽게 설계되어있고, 디버거가 Rust와 같이 친절하게 작성되어 있다. 깃허브에 소스 코드와 바이너리가 올라와있어, 설치 후 쉽게 코딩해 볼 수 있다.

4.2.6. 기타

4.3. 난해한 한글 프로그래밍 언어


보시다시피 BrainFuck 기반인 언어가 여러 개 있다. 아래에서 코드를 테스트 해 볼 수 있다.

5. 구조

대부분의 일반적인 프로그래밍 언어는 이런 토큰들이 영어로 되어 있으나 한국어/한글로 작성되는 언어에 관한 이야기를 하고있기 때문에 창조씨앗 같은 문법들을 위주로 살펴볼 필요가 있다.

6. 목록

문서가 있는 언어는 분류:한글 프로그래밍 언어를 참조 바람.

7. 관련 문서

8. 외부 링크



[1] 원유헌, 한글 프로그래밍 언어, 정보과학회지 제2권 제1호, 1984.[2] 천준석, 강도훈, 김건우, 우균 "간결한 한글 프로그래밍 언어 “새싹”" 정보과학회논문지 42.4 pp.496-503 (2015) : 496.[3] 한국정보과학회논문지 제42권 제4호(2015. 4)[4] https://github.com/hatemogi/misaeng?tab=readme-ov-file[5] 한글날 기념으로 출시된 언어라고 하며, brainfuck과 거의 동일하다.