어디선가 유입이 자꾸 들어오고 있는것같은데.. 혹시 시간 되신다면 어디쪽 링크 통해서 들어오셨는지 기재 부탁드리겠습니다. 어떻게 엄랭을 발견하셨나요..!
어떻게
엄식?
어엄식?
동탄어?준... ....
엄어,
어엄어어.
준.. ...
식어어!
이 사람이름이냐ㅋㅋ
cjaewon/umlang에 영감을 받아 제작되었습니다
주의: Umlang 표기는 위의 프로젝트와 겹치기 때문에, 꼭 한글로만 표기해주세요. 영문표기를 해야할때는 "umjunsik-lang"이라고 표기해주세요.
엄랭은 세계 최초의 인물이름으로 만들어진 난해한 프로그래밍 언어입니다. 엄준식이 어떻게 인물 이름이냐고요? 그러게요ㅋㅋ 어떻게 엄준식이 어떻게 사람 이름이지ㅋㅋ "엄준식 사람이름인데요"
- 디노 (v2) : 레퍼런스 런타임입니다
- 노드JS (v2) : Deno 구현체의 NodeJS 포트버전입니다.
- 파이썬 (v2)
- 웹-엄 (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번째 변수 접근 / 대입 표현
- 변수간 덧셈연산