/umjunsik-lang

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

Primary LanguageRust

백준에서 엄랭을 만나보세요!

백준 설정에서 "엄준식"을 활성화해주면 엄랭으로 문제를 풀 수 있습니다

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

엄랭

어떻게

엄식?
어엄식?

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

엄어,
어엄어어.

준.. ...
식어어!

이 사람이름이냐ㅋㅋ

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

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

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

구현체

Contributors ✨

All Contributors


goorm

📦

Steve28

📦

PMH

📦

Aki

💻

Tim232

💻

JeYoung

💻

Rok

📦

adp-study

🚇 🐛

noname

💻

TralocDheckoa

💻

sangchoo1201

🐛

Sukuna Shinmyoumaru

📦

Yeong Jae Cho

📦

kiwiyou

📦

Kyle Seongwoo Jun

🚇

Yubin Choi

💡

Baekjoon Choi

🚇

ㅇㅂㅎ

💡

문법

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

자료형

정수: 온점, 반점의 갯수로 나타냅니다. 온점의 갯수만큼 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. 변수간 덧셈연산