엄랭은 세계 최초의 인물이름으로 만들어진 난해한 프로그래밍 언어입니다. 엄준식이 어떻게 인물 이름이냐고요? 그러게요ㅋㅋ 어떻게 엄준식이 어떻게 사람 이름이지ㅋㅋ "엄준식 사람이름인데요"
어디선가 유입이 자꾸 들어오고 있는것같은데.. 혹시 시간 되신다면 어디쪽 링크 통해서 들어오셨는지 기재 부탁드리겠습니다. 어떻게 엄랭을 발견하셨나요..!
어떻게
엄식?
어엄식?
동탄어?준... ....
엄어,
어엄어어.
준.. ...
식어어!
이 사람이름이냐ㅋㅋ
cjaewon/umlang에 영감을 받아 제작되었습니다
주의: Umlang 표기는 위의 프로젝트와 겹치기 때문에, 꼭 한글로만 표기해주세요. 영문표기를 해야할때는 "umjunsik-lang"이라고 표기해주세요.
- 코딩애플: 엄준식 프로그래밍 언어 (어떤 놈이 만들었냐)
- 컴공선배: 엄랭 어떤 놈이 만들었냐? 어떤 놈 만났습니다.
- 코딩애플: chatGPT는 엄준식 프로그래밍 언어도 잘할까?
- 디노 (v2) : 레퍼런스 런타임입니다
- 노드JS (v2) : Deno 구현체의 NodeJS 포트버전입니다.
- 파이썬 (v2)
- pip에서
umjunsik
패키지를 설치할 수 있습니다 $ pip install umjunsik && umjunsik [filename.umm]
- pip에서
- 웹-엄 (v2) : kms0219kms님이 호스팅해주시고 있습니다🎉
- C (v2)
- C# (v2)
- 코틀린 (v2)
- Go (v2) : 실제 인터프리터 구조를 차용하여 개발한 고급 런타임입니다
- 러스트 (v2)
엄랭은 "엄", "준", "식", "동탄" 네개의 키워드와 "!", ".", " ", "~", "ㅋ" 다섯개의 기호로 코드가 이루어집니다. 모든 프로그램은 "어떻게"로 시작하며, 항상 "이 사람이름이냐ㅋㅋ"로 끝나야 합니다.
정수: 온점, 반점의 갯수로 나타냅니다. 온점의 갯수만큼 1을 더하며, 반점의 갯수만큼 1을 뺍니다.
... => 3
.. => 2
,, => -2
,,, => -3
.,., => 0
- 1 증가:
.
- 1 감소:
,
- 곱하기: " "(공백)
.. -> 2
,, -> -2
., -> 0
.. .. -> 4
.. ,, -> -4
... ... ... -> 27
변수는 인덱싱(정수)을 통해 접근하고 대입할 수 있습니다. 지정하지 않았을경우 모든 변수의 기본값은 0입니다.
연음의 갯수번째 변수에 뒤에 오는 수를 대입합니다
어어엄 => 3번째 변수에 0 지정
어엄 => 2번째 변수에 0 지정
엄.. => 1번째 변수에 2 지정
어엄. => 2번째 변수에 1 지정
엄,,, => 1번째 변수에 -3 지정
연음의 갯수번째 변수를 불러옵니다
어 => 1번째 변수
어어 => 2번째 변수
어어어 => 3번째 변수
엌
과 ㅋ
사이에 입력된 수 번째의 변수에 뒤에 오는 수를 대입합니다. 시작하는 엌은 엌ㅋㅋㅋㅋㅋㅋㅋㅋ
등으로, 끝내는 ㅋ는 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
등으로 늘려서 적을 수 있으며, 이에 따른 동작의 변화는 없습니다.
엌..ㅋ => 2번째 변수에 0 지정
엌ㅋㅋㅋㅋㅋ..ㅋㅋㅋㅋㅋ. => 2번째 변수에 1 지정
엌.ㅋ어 => 1번쨰 변수에 `어`값 지정
엌어ㅋ어어 => `어`번째 변수에 `어어` 변수의 값 지정
어
와 ㅋ
사이에 입력된 수 번째의 변수의 값을 가져옵니다. 만약 마지막 문자가 ㅋ
이 아니라 엌
이라면 어ㅋ
으로 분해해서 평가합니다. 끝내는 ㅋ은 ㅋㅋㅋㅋㅋ
등으로 늘려서 적을 수 있으며, 이에 따른 동작의 변화는 없습니다.
어..ㅋ => 2번째 변수
어,,,ㅋ => -3번째 변수
어엌 => 어어ㅋ => `어`번째 변수
어어어,,ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ => (어어 - 2)번째 변수
변수 / 상수 덧셈식 뒤에 변수를 이어적으면 뒤에 따르는 변수를 더할 수 있습니다. 사칙연산의 우선순위가 적용되지 않으며, 무조건 왼쪽에서부터 연산합니다.
어, 어어 => 어 - 1 * 어어 => 어 - 어어
어.어어 => 어 + 1 + 어어
어어. 어어 => 어어 + 1 * 어어 => 어어 + 어어
어어 어어 어어 => 어어 ^ 3
정신나갈것같아요
콘솔에서 정수를 입력받습니다.
엄식? => 콘솔을 입력받아서 1번째 변수에 대입한다.
어엄식? => 콘솔을 입력받아서 2번째 변수에 대입한다.
콘솔에 정수를 출력합니다.
식..! => 콘솔에 2 출력
식어! => 콘솔에 첫번째 변수 출력
콘솔에 문자를 출력합니다. 식
과 ㅋ
사이에 오는 정수를 유니코드 문자로 변환하여 콘솔에 출력합니다. 식
과 ㅋ
사이에 정수가 주어지지 않으면 개행합니다(식ㅋ
=> \n
)
식........... ........ㅋ => 콘솔에 X 출력
동탄{정수}?{실행할 명령}
으로 작성합니다. 정수가 0이라면 실행할 명령
이 실행되며, 그렇지 않다면 다음줄로 넘어갑니다.
준
뒤에 오는 정수번째 줄로 이동합니다. 준.. => 2번째 줄(글자)로 이동
. 원라인코드의 경우에는 ~
로 분리된 코드단위로 카운트하여 이동합니다.
화이팅!
뒤에 오는 정수를 반환하며 프로그램을 종료합니다.
- 확장자는
.umm
입니다. - One-line 작성은
\n
을~
로 치환합니다. (예제: 구구단 참조)
- gnex-umjunsik What is Gnex?
-
웹-엄 -
엄랭파이썬
- 20200626 0030 : 엄랭 공개
- 20200626 0855 : 엄랭 문서 완성
- 20200625 1256 : 엄랭 Deno 구현체 배포
- 20200804 : 엄랭v2
- 모든 콘솔 출력은 인라인
화이팅!
후에 오는 문자열을 반환하며 프로그램이 종료- 새 문법 추가:
식ㅋ
- 새 문법 추가:
동탄?
화이팅!
의 명세 변경
- 20200805 : 문서 개정
동탄?
설명 추가화이팅!
설명 변경- 지시문들을 별도의 단락으로 분리
- 20200912 : 99병의 맥주 예제
- 20200915 : 엄랭v2-엄랭노드 구현체 배포
- 20201017 : 엄랭v2-파이썬 구현체 배포 by Steve28
- 20201105 : 웹-엄: 자바스크립트로 된 엄랭 처리기(웹런타임) 배포 by PMH
- 20210530 : 엄씨(엄랭-C 컴파일러) 배포 by Rok
- 20210809 : 엄랭 C# 구현체 배포 by noname0310
- 20220201 : 엄랭 코틀린 구현체 배포 by shs3182ym
- 20220203 : 엄랭 Go 구현체 배포 by alvin1007
- 20220203 : 엄랭 러스트 구현체 배포 by kiwiyou
- 20220207 : 엄랭v3 초안 작성중
- N번째 변수 접근 / 대입 표현
- 변수간 덧셈연산