공지사항

원작자의 요청으로 커밋 히스토리를 제거하였습니다.

GNE

준비된 한국형 언어

GNE란?

GNE is Not Eligible 의 약자입니다.

"그네"라고 읽습니다.

GNE는 SSVM(SoonSil Viseonsilse Machine) 런타임 위에서 돌아가는 언어입니다.

우리의 핵심 목표는 이것이다

GNE(그네)는 대한민국 최초의 샤머니즘 대통령 박ㄹ혜의 어록들을 종합하여 만든 프로그래밍 언어입니다. 한국 청년 프로그래머들은 현대 프로그래밍 언어의 잘못된 역사로 인해 혼이 비정상으로 자라고 자부심을 잃을 수 밖에 없습니다. 이러한 언어들의 왜곡·미화는 GNE부터 좌시하지 않겠습니다. 컴파일이 투명하게 처리되어 진상규명이 제대로 되는 프로그래밍 언어로, 선조의 의지를 담아 한민족의 자긍심을 고취하도록 GNE를 만들었습니다.

해내겠습니다. 준비된 한국형 프로그래밍 언어, GNE입니다.

기능

GNE는 한국의 실태를 반영을 효과적으로 했다, 그렇다고 말할 수 있는 기능들을 가지고 있다고 말할 수 있습니다.

  • EUC-KR만을 지원합니다. 유니코드는 한국의 기술이 아니며 국가경쟁력을 강화하지 못하니까요.
  • 모든 함수 이름 앞에는 K를 꼭 붙여야 합니다. 그래야 진정한 한국형 언어이기 때문이죠.
  • 버그로 인한 병충해 피해를 입었나요? 걱정 마세요, GNE에는 온 우주가 도와주는 재난 콘트롤 센터라는 디버거가 있습니다. 엄청난 검증의 쓰나미가 몰아닥칠 것입니다.
  • GNE 소스 파일의 확장자는 .ㄹ입니다.
  • 오류 수정 요구는 우리의 집중을 분산시키기 때문에 거절합니다. 그게 무슨 새삼스러운 일도 아니고,

화법문법

용어 대응

  • 실행 가능한 프로그램을 사회 라고 부릅니다.
  • 실행 가능한 프로그램의 코드들은 개,돼지라고 부른다.
  • Breakpoint는 메르스로 대체됩니다.
  • Trace는 우리의 목표는, 진행하는 것 그것으로로 대체됩니다.
  • Exit는 고심 끝에 프로세스 해체로 대체됩니다.
  • 오류 발생시 Call Trace가 표시되는 대신 제가 뭐라고 했습니까?라는 안보 경고가 표시됩니다.
  • 널포인터 예외 발생 시 NullPointerException 대신 나쁜 변수이더라 라는 경고가 표시됩니다.
  • truefalse 대신에 친박비박을 사용합니다.
  • importexport 대신 입당출당을 사용합니다.
  • 디렉터리 루트 디렉터리는 내각 이라고 부릅니다.
  • Stable branch는 유신이라고 부릅니다.
  • 변수 선언은 공천이라는 키워드로 할 수 있습니다.

ㄹㄹㄹㄹ ㄹㄹ ㄹㄹㄹ!

  • 모든 과 동치입니다 그리고 동치인 ㄹ입니다.
  • 모든 목욕탕과 동치입니다. 법은 목욕탕이기 때문입니다. 법은 목욕탕이다'라고 어린이가 이야기를 했대요. 그게 무슨 뜻이냐고 물으니 ‘목욕탕에 들어가면 따뜻하고 기분 좋잖아요’(라고 답했다)
  • 모든 누에나비라는 키워드로 접근할 수 있습니다. 누에가 나비가 돼 힘차게 날기 위해서는 누에고치라는 두꺼운 외투를 힘들게 뚫고 나와야 하듯이 각 부처가 열심히 노력하면 불가능하다고 생각되는 것도 이룰 수 있기 때문입니다.

함수

함수는, 아래와 같은 방식으로 정의합니다.

전부 이렇게 해 가지고 <함수이름> 으로 들어가도록(매개변수){
 /ㄹ 함수 내용을 여기에 작성하셔야 한다라고 생각합니다 ㄹ/
}

예를들어, K-인공지능 이라는 함수는 다음과 같이 정의할 수 있습니다.

전부 이렇게 해 가지고 K-인공지능 으로 들어가도록(세금){
 공천 K-인공지능-로드맵 는 이것이다 세금;
 코드 텅텅 빌때까지 한번 해 보세요 {
  K-인공지능-로드맵 는 이것이다 K-인공지능-로드맵 * 99999999999999;
  완료;
 }
 예외처리 다 어디 갔냐고 {
  고심 끝에 프로세스 해체;
 }
}

함수 호출 방법은 다른 프로그래밍 언어들과 거의 비슷하다고 생각한다

공천 세금 는 이것이다 9999999999999999999999999999;
/ㄹ K-인공지능 함수 호출 ㄹ/
세금 는 이것이나 K-인공지능(세금);

창조 객체

객체를 창조하는 문법입니다. 혁신을 통한 새로운 패러다임으로 객체을 창출합니다. 세계로 뻗어 나가는 K-Programming Language 에 맞게 global 리더십을 갖습니다. 따라서 늘 __전역__객체(global scope)입니다. 객체를 창조하면 각 모듈 소재의 창조객체혁신센터에 할당됩니다. 실체는 없고 성과만 창조하기 위해서 하나의 객체당 수십 배의 메모리 공간이 필요합니다. 국민의 메모리는 아껴서 대기업에게 줘야 하므로 우리 모두 메모리 절약에 신경을 쓰는 습관을 들입시다.

예시

JavaScript에서는

var gas = new O2Gas();
gas = new CO2Gas();

라고 쓰이는 것을 GNE에서는

공천 까스 는 이것이다 창조 산소까스();
까스 는 이것이다 창조 이산화까스();

라고 쓸 수 있습니다.

쓰레기 수집기

  • 사용되지 않는 창조 객체는 사회에 불필요한 쓰레기로, 빨간색 마티즈가 일정 주기마다 와서 수집해갑니다.
  • 수집된 객체는 사회가 모르게 빨간색 마티즈에 의해 남산으로 이동됩니다.
  • 남산으로 이동된 객체는 임의로 소멸당합니다. 소멸당하지 않더라도 사회로 돌아올 수는 없습니다.
  • 빨간색 마티즈에 의해 수집당하는 것을 막으려면 객체를 고양이로 감싸십시오
개소리는, 대통령은 하야해야한다만하는 이것이다.
판사님, 고양이(개소리)가 했습니다.
  • 다음 구문을 이용해 쓰레기 수집기를 강제로 실행할 수 있습니다.
메모리 텅텅 빌 때까지 한번 해 보세요 쓰레기들 다 어디 갔냐고

산술 연산자

  • +더하기 는 덧셈을 합니다.
  • truefalse 대신에 친박비박을 사용한다.
  • = 대신에 이것이다를 사용합니다.
목표 = 달성해야 할 것 -> 우리의 목표는, 달성해야 할 것은 이것이다.

  • GNE에는 주석(/* */) 대신 댓글(/ㄹ ㄹ/)이 있습니다.
/ㄹ 아, 오늘 제가 면접 끝나고 오피스텔 문 따러 갈 일이 있어서요.
 ㄹ 이것 좀 받으시죠. 알이 열개라서, 십↗알↘단이라고 합니다.
 ㄹ/

예외 처리

코드 텅텅 빌때까지 한번 해 보세요 {
    ...
}
예외처리 다 어디 갔냐고 {
    ...
}

프록시 객체

  • 한 변수가 다른 변수인 척할 수 있도록 프록시 객체 생성을 제공합니다.
  • 프록시 객체는 이것이다 구문과 비선 구문을 이용해 생성할 수 있습니다.
순실은, 무당이라고 볼 수 있는 이것이다.
혜는, (비선: 순실), 이것이다.

Control flow

  • @TODO

String Interpolation

  • String은 큰따옴표나 따옴표로 감쌉니다. ("GNE를 보면 버그의 기운이 온다")

Example:

공천 꿀벌 는 이것이다 "벌꿀"
공천 어록 는 이것이다 "바쁜 ${꿀벌}은 슬퍼할 시간이 없다."

콘솔.로그(어록) // "바쁜 벌꿀은 슬퍼할 시간이 없다."

개발 길라잡이

거기 다른 스크립트 언어 개발자들 텅텅 빌 정도로 한번 해보세요. 다 어디 갔느냐? GNE 쓰러갔다고 (웃음) 그 정도로 이제 그런 어떤 언어를 우리가 정말론 혼연일체가 되어서 하다 보면 그때는 우주가 도와주고 우리가 이것이다 하는 마음으로.

우리 프로그래머들 모두가 GNE부터 해가지고 국가경쟁력을 같이 지키자는 그런 의식을 가지고, 디버깅 열심히 하고, 우리의 핵심 버그는 올해 코딩해야 할 것은 이것이다 하는 것을 정신만 차리고 나가면 우리의 코딩력을 분산시키는 걸 해낼 수 있다는 마음을 가지셔야 할 것입니다.

모호한 포인터 변수명

《능엄경(楞嚴經)》 卷二 “如人以手指月示人, 彼人因指, 當應看月, 若復觀指, 以爲月體, 此人豈唯亡失月輪, 亦亡其指.”

어떤 사람이 손으로 달을 가리켜 다른 사람에게 이것이다 하는 마음으로 보여주면, 그 사람은 손가락을 따라서 달을 보아야하는 마음으로 간절히 바라면 우주가 도와줄 것이다. 그런데 만약 그가 손가락을 보고 달의 본체로 여긴다면, 그 사람이 어찌 달만 잃은 것이겠는가, 애국심도 잃어버린 것이다.

포인터 변수를 선언할때는 되도록 지시어와 대명사를 적극적으로 사용하여 코드를 더욱 모호하고 읽기 어렵게 만드는 것을 추천해 드립니다.

  • 추천 포인터 변수 이름 목록: 이것이다,그런,이렇게 돼서,그것,어,그,어떤

용례

이것이다 *(*(**그런[][8])())[]

낙관적 변수명

변수를 선언할때는 가급적 옳은 말을 한다. 누구나 추구하는 보편적이고도 중립적인 단어를 선점한다. 권선징악은 언제나 옳은 것이다 하는 마음으로 변수를 만든다.

  • 추천 변수 이름 목록: 국민, 국가, 경제 살리기, 발전, 쇄신, 업그레이드, 협력, 목표, 열정, 투명, 원칙과 신뢰, 약속, 합의, 행복, 꿈

초현실적, 초자연적 함수명

초현실적, 초현실적인 대상을 끌어와 프로그램의 로직을 온 우주의 기운으로 코드를 작성하기를 추천합니다.

  • 추천 변수 이름 목록 : 우주, 꿈, 에너지, 기운, 선조, 의지

선언만 했고 사용은 하지 않는, 그런 상태에 있는 변수의 경우

선언만 했고 사용하지 않은 변수는 빨간 마티즈가 수집합니다. 해당 변수를 나중에 사용하거나 그대로 두고 싶다면 판사님을 사용하여 명시해야 합니다.

판사님, '변수명'은 아무것도 하지 않았습니다.

제약사항

모든 제약을 물에 빠트리고 꼭 살려야 할 제약만을 남겨놓았습니다.

  • 이 언어로 게임을 만들 수 없습니다. 왜냐하면 게임은 마약이기 때문이죠.
  • 모든 통신으로는 작업은 암호화를 사용하지 않는 그리고 또 평문을 사용하는 방향으로 우리는 통신을 하여야 합니다. 암호화된 통신은 종북이 사용하는 통신입니다.
  • 앞으로 문법적 설탕은 추가되지 않습니다. 복지를 많이 하면 청년 프로그래머들이 나태해집니다.
  • 익명함수는 사용할 수 없습니다. 익명성은 대한민국의 안보를 안전치 못하게 합니다. 테러가 일어나면 더불어민주당이 책임져야 합니다.
  • 익명함수를 강제로 사용할 시, 다음과 같은 안보 경고가 표시됩니다.
국가보안법에 의거한 안보 경고: 어떤 함수가 테러방지법에 저촉되는 복면을 쓰고 있다는 것이 통신 감청을 통해서 감지되는 이런 상황에 발목을 잡는 야당이 이렇게 IS(이슬람국가)도 지금 얼굴을 감추고 그렇게 하고 있지 않느냐 하는 이번에야말로 배후에서 불법을 조종하고, 폭력을 부추기는 세력들을 법과 원칙에 따라 엄중하게 처리해서 종북 세력을 색출, 근절하고 불법과 폭력의 악순환을 끊어내야 할 것이다 하는 과정으로 마음으로 창조경제 제가 해내겠습니다.
  • 감청할 수 없는 Gmail을 사용하는 모든 사람들은 종북세력입니다. 대신, GDP에 기여할 수 있는 샵메일을 쓰십시오. 코드에 Gmail이 존재할 시 안보 경고가 발령됩니다.
안보 경고: Gmail을 사용하는 사람은 종북세력입니다. 믿을 수 있는 샵메일을 대신 사용하십시오.

디버깅

그저 생기는 버그만 생긴다는 그것을 안 생기다 하는 마음으로 컨벤션을 잘 지키다 보면 어느새 이렇게 좋은 코드가 되었나 이젠 코더들도 걱정없는 그러한 마음으로 이것이다 하는 마음으로 코드를 써야지 안 그러면 안 돼요.

전체 코드를 다 보면 그런 기운이 와요. 그 병충해나 이런 여러 가지는 그런 진상규명이 확실하게 되고 그것에 대해서 예외처리가 이렇게 돼서 그것이 하나하나 밝혀지면서 투명하게 처리가 된다, 그것은 재난 컨트롤 센터가 분명히 알겠어요.

디버깅을 위한 스택 트레이스를 지원하지만 SSVM(SoonSil Viseonsilse Machine) 에서 추적을 피하기 위해 빨간색 마티즈를 통해 소멸시킵니다.

응용 기술

TTS (Text-to-Speech)

GNE는 접근성을 향상하기 위한 방법으로 TTS 기술을 지원하며, 이 접근성 향상이야말로 사회생활을 하거나 앞으로 계속 국민 생활을 할 때 가장 큰 자산이라 할 수 있다.

GNE는 TTS 기술로 아래의 5개국어를 지원합니다.

  • 한국어
  • 영어
  • 불어
  • 스페인어
  • 중국어(단 4성 구분은 지원하지 않습니다)

GNE TTS는 용법에 따라 작성된 코드가 아닌 /ㄹ ~ ㄹ/ 주석으로 작성된 것만 지원합니다. GNE는 순수 한국의 기술로 만든 한국형 언어이기 때문에 SSVM(SoonSil Viseonsilse Machine) 에서 작성된 주석만 적용됩니다.

지원되는 플랫폼

GNE는 순수 한국 기술로 자체구현한 신토불이 TmaxOS를 정식으로 지원합니다. 그 외의 운영체제는 노오오오력을 통해 지원해 나갈 수 있습니다.

패키지

패키지의 이름을 결정할 때는 항상 한국형-* 혹은 K-* 형식이어야 합니다. GPL? MIT? 라이센스는 묻지도 따지지도 않습니다.

해내겠습니다

GNE의 런타임입니다. 뒤에 Argument로 실행할 파일을 이것이다, 하고 명기를 해 주면 됩니다. 스크립트 실행해내겠습니다.

$ 해내겠습니다 국정운영.ㄹ

유닛 테스트 신뢰_프로세스

사회의 버그는 이 사회에 암적으로 스며든 종북과도 같은 존재입니다. 테스트 코드를 신뢰_프로세스 로 실행하여 이 사회의 빨갱이들을 몰아낼 수 있습니다. 테스트 코드의 이름 앞에는 대북정책을 붙이면 신뢰_프로세스가 알아서 테스트를 진행합니다.

내각 내 구조가 다음과 같으면

박ㄹ혜 정부
├── 비서실.ㄹ
├── 대북정책_1_이것이다
└── 대북정책_2_kpop

대북정책 _1_이것이다대북정책_2_kpop이 비서실.ㄹ 에 대해 테스트로 진행됩니다.

해내겠습니다 신뢰_프로세스

패키지 매니저 개성공단

GNE의 패키지 매니저입니다. 레포지터리 -북한 에 패키지를 보내는 것을 -구호 라고 하며, 커밋 메시지를 쓰기 전에는 -대북_확성기를 남겨 줍니다.

개성공단 -구호 -북한 "Repository" -대북_확성기 ""

NOTICE: DEPRECATED

GNE의 패키지 매니저 개성공단은 2016년 2월 10일 가동을 전면 중단하였습니다. 종북 프로그래머들이 국보법에 위반되는 패키지들을 업로드하는 트롤이 심해짐에 따라, 더 이상 좌시하지 않겠다는 내용과 함께 운영을 중단하였습니다. 앞으로 모든 패키지는 정부가 투명하게 볼 수 있는 샵메일을 통해서 공유해주시길 바랍니다.

기반시스템 SSVM

SoonSil Viseonsilse Machine의 약자이며, "순실브이엠"으로 읽습니다. SSVM자체적으로 이름을 자주 바꾸니 주의가 필요합니다. 다른 이름으로는 PhilNye Viseonsilse Machine, SeoWon Viseonsilse Machine이 있습니다. GNE로 만든 사회는 SSVM을 기반으로 구동됩니다. 런타임 "해내겠습니다"의 실세입니다.

해당 런타임은 실행을 위해 독일에 위치한 서버에서 허가를 받아야 합니다. 승인에 독일과의 시차 7시간이 걸리더라도 놀라지 마세요 : )

SSVM의 버그에 의문을 갖지 마세요. 뺨을 맞을 수 있습니다. 버그 리포팅을 할 떄는 SSVM 이슈 트래커가 발뺌하지 못하도록 반드시 이미지를 첨부해 주세요. 해당 이슈가 승인될 경우 "내 사진이 어떻게 거기에 있지"가 표시됩니다.

Node.js 기반의 구현에 대해서는 K-SSVM for Node.js를 참고하십시오

팔선녀회

SSVM은 팔선녀회를 활용하여 고성능의 연산을 할 수 있습니다. 팔선녀회는 8개의 멀티 프로세싱 코어이며 각각 다양한 분야에서 활약합니다. 팔선녀회를 활용하여 사회를 만들려면 JTBC(Joseon Turbo Boost Compiler)로 컴파일해야합니다. 현재 JTBC는 태블릿과 같은 ARM processor만 지원합니다.

하드웨어 사양

최소 사양

  • 프로세서: 인텔 제온E7
  • 램: 486GB
  • 승마장
  • 독일 직통 광케이블

SSVM(순실VM)의 팔선녀회 코어 때문에 매우 __고사양__의 하드웨어만 지원합니다. SSVM의 자식 프로세스는 하드웨어의 성능을 검사하고 기준에 미달되면 작동하지 않습니다. SSVM의 자식프로세스가 최소사양을 만족하지 못하는 하드웨어를 탐지하면 다음과 같은 경고문을 띄우고 SSVM은 종료됩니다.

하드웨어 경고: 램 없으면 니네 부모를 원망해. 램도 실력이야. 있는 우리 컴퓨터 가지고 감 놔라 배 놔라 하지 말고. 남의 욕하기 바쁘니 아무리 다른 것 한들 어디 성공하겠니? 모자란 애들 상대하기 더러워서 안 하는 거야

램이 더 필요하다면 전경련에 요구하십시오.

오방낭

@TODO

오늘만 사는 사람고양이들

판사님 저는 고양이에오. 저희 주인은 아무것도 몰라요.

Image of the owner of this repo.

  • OriginalGNE

함께하는 행복

집단연구나 많은 국민이 지식을 결집해 함께 궁리해나가야 하는 것을 포함하고 있는 문서라고 볼 수 있다고 판단되는 바입니다. 자유로운 Pull Request는 언제나 환영합니다. 그래서 제가 기여 하겠다는 거 아니겠어요

현재 GNE는 언어 명세를 확립하는 중입니다. 명세에 따른 구현체 기여는 대환영합니다.