/umjunsik-lang

어떻게 엄준식이 언어이름이냐🤣

Primary LanguageVisual Basic .NETMIT LicenseMIT

엄랭

엄랭은 세계 최초의 인물이름으로 만들어진 난해한 프로그래밍 언어입니다. 엄준식이 어떻게 인물 이름이냐고요? 그러게요ㅋㅋ 어떻게 엄준식이 어떻게 사람 이름이지ㅋㅋ "엄준식 사람이름인데요"

어디선가 유입이 자꾸 들어오고 있는것같은데.. 혹시 시간 되신다면 어디쪽 링크 통해서 들어오셨는지 기재 부탁드리겠습니다. 어떻게 엄랭을 발견하셨나요..!

어떻게

엄식?
어엄식?

동탄어?준... ....

엄어,
어엄어어.

준.. ...
식어어!

이 사람이름이냐ㅋㅋ

cjaewon/umlang에 영감을 받아 제작되었습니다

주의: Umlang 표기는 위의 프로젝트와 겹치기 때문에, 꼭 한글로만 표기해주세요. 영문표기를 해야할때는 "umjunsik-lang"이라고 표기해주세요.

엄 on Live!

구현체

Contributors ✨

All Contributors

goorm
goorm

📦
Steve28
Steve28

📦
PMH
PMH

📦
Aki
Aki

💻
Tim232
Tim232

💻
JeYoung
JeYoung

💻
Rok
Rok

📦
adp-study
adp-study

🚇 🐛
noname
noname

💻
TralocDheckoa
TralocDheckoa

💻
sangchoo1201
sangchoo1201

🐛
Sukuna Shinmyoumaru
Sukuna Shinmyoumaru

📦
Yeong Jae Cho
Yeong Jae Cho

📦
kiwiyou
kiwiyou

📦
Kyle Seongwoo Jun
Kyle Seongwoo Jun

🚇
Yubin Choi
Yubin Choi

💡
Baekjoon Choi
Baekjoon Choi

🚇
ㅇㅂㅎ
ㅇㅂㅎ

💡
pizzaroot
pizzaroot

📦
Dongha Hwang
Dongha Hwang

💡 🐛
PersesTitan
PersesTitan

📦 🐛
JunHyeok Hong
JunHyeok Hong

📖
happy-spark
happy-spark

💡
Minsu Kim
Minsu Kim

📦 🎨
JerryJung
JerryJung

📖
Jihoon Lee
Jihoon Lee

📖

문법

엄랭은 "엄", "준", "식", "동탄" 네개의 키워드와 "!", ".", " ", "~", "ㅋ" 다섯개의 기호로 코드가 이루어집니다. 모든 프로그램은 "어떻게"로 시작하며, 항상 "이 사람이름이냐ㅋㅋ"로 끝나야 합니다.

자료형

정수: 온점, 반점의 갯수로 나타냅니다. 온점의 갯수만큼 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번째 변수

초안/미구현 : N번째 변수에 대입 (엌ㅋ)

사이에 입력된 수 번째의 변수에 뒤에 오는 수를 대입합니다. 시작하는 엌은 엌ㅋㅋㅋㅋㅋㅋㅋㅋ 등으로, 끝내는 ㅋ는 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 등으로 늘려서 적을 수 있으며, 이에 따른 동작의 변화는 없습니다.

엌..ㅋ => 2번째 변수에 0 지정
엌ㅋㅋㅋㅋㅋ..ㅋㅋㅋㅋㅋ. => 2번째 변수에 1 지정
엌.ㅋ어 => 1번쨰 변수에 `어`값 지정
엌어ㅋ어어 => `어`번째 변수에 `어어` 변수의 값 지정

초안/미구현 : N번쨰 변수 가져오기

사이에 입력된 수 번째의 변수의 값을 가져옵니다. 만약 마지막 문자가 이 아니라 이라면 어ㅋ으로 분해해서 평가합니다. 끝내는 ㅋ은 ㅋㅋㅋㅋㅋ등으로 늘려서 적을 수 있으며, 이에 따른 동작의 변화는 없습니다.

어..ㅋ => 2번째 변수
어,,,ㅋ => -3번째 변수
어엌 => 어어ㅋ => `어`번째 변수
어어어,,ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ => (어어 - 2)번째 변수

초안/미구현 : 변수연산

변수 / 상수 덧셈식 뒤에 변수를 이어적으면 뒤에 따르는 변수를 더할 수 있습니다. 사칙연산의 우선순위가 적용되지 않으며, 무조건 왼쪽에서부터 연산합니다.

어, 어어 => 어 - 1 * 어어 => 어 - 어어
어.어어 => 어 + 1 + 어어
어어. 어어 => 어어 + 1 * 어어 => 어어 + 어어
어어 어어 어어 => 어어 ^ 3

정신나갈것같아요

콘솔

식?

콘솔에서 정수를 입력받습니다.

엄식? => 콘솔을 입력받아서 1번째 변수에 대입한다.
어엄식? => 콘솔을 입력받아서 2번째 변수에 대입한다.

식!

콘솔에 정수를 출력합니다.

..! => 콘솔에 2 출력
식어! => 콘솔에 첫번째 변수 출력

식ㅋ

콘솔에 문자를 출력합니다. 사이에 오는 정수를 유니코드 문자로 변환하여 콘솔에 출력합니다. 사이에 정수가 주어지지 않으면 개행합니다(식ㅋ => \n)

........... ........ => 콘솔에 X 출력

지시문

동탄?

동탄{정수}?{실행할 명령}으로 작성합니다. 정수가 0이라면 실행할 명령이 실행되며, 그렇지 않다면 다음줄로 넘어갑니다.

뒤에 오는 정수번째 줄로 이동합니다. 준.. => 2번째 줄(글자)로 이동. 원라인코드의 경우에는 ~로 분리된 코드단위로 카운트하여 이동합니다.

화이팅!

화이팅!뒤에 오는 정수를 반환하며 프로그램을 종료합니다.

기타

  • 확장자는 .umm입니다.
  • One-line 작성은 \n~로 치환합니다. (예제: 구구단 참조)

예제

위키를 참조해주세요

To-Do

History

  • 20200626 0030 : 엄랭 공개
  • 20200626 0855 : 엄랭 문서 완성
  • 20200625 1256 : 엄랭 Deno 구현체 배포
  • 20200804 : 엄랭v2
    1. 모든 콘솔 출력은 인라인
    2. 화이팅! 후에 오는 문자열을 반환하며 프로그램이 종료
    3. 새 문법 추가: 식ㅋ
    4. 새 문법 추가: 동탄?
    5. 화이팅!의 명세 변경
  • 20200805 : 문서 개정
    1. 동탄? 설명 추가
    2. 화이팅! 설명 변경
    3. 지시문들을 별도의 단락으로 분리
  • 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 초안 작성중
    1. N번째 변수 접근 / 대입 표현
    2. 변수간 덧셈연산