Skip to main content

한글 프로그래밍 언어 '나무'를 실행할 수 있는 패키지입니다.

Project description

한글 프로그래밍 언어 "나무"

"나무"는 코딩 입문자가 쉽게 사용할 수 있는 한글 프로그래밍 언어입니다.

도움말

시작하기

인터프리터 실행하기

  1. 당연하게도(?) 나무를 실행하기 위해 파이썬을 설치합니다.
  2. 터미널이나 Shell 창에 pip install namu를 입력합니다.
  3. 파이썬 파일에
    import namu
    namu.interpreter()
    
    을 입력하고 실행시키면...!
  4. 콘솔창에서 나무 인터프리터가 실행됩니다!!

문법

1. 코드 작성

나무는 파이썬처럼 하나의 줄에 한 문장을 입력합니다.

줄 구분

나무는 CRLFLF, ;(세미콜론)으로 줄을 구분합니다. 한 줄에는 하나의 문장만이 들어가지만 (), {}, [] 등의 괄호쌍 내부에서는 줄구분을 하지 않습니다. 따라서 배열 등은 여러 줄에 걸쳐 사용할 수 있습니다.

확장자

나무는 .namu.나무를 사용하지만 현재는 아무 확장자로 해도 작동됩니다. 나중에 특정 확장자만 쓸 수 있게 할 계획이 있습니다.

주석

#(샵) 문자 뒤에 있는 코드는 주석으로 처리되어 실행되지 않습니다. (단, 인터프리터에서 사용하시면 에러가 납니다.)

2. 값

현재 나무에서는 5가지의 값들을 지원합니다.

  • 정수: 1, 12, 2021
  • 실수: 0.1, 3.14, 10.22

문자열

  • 따옴표나 쌍따옴표로 둘러싸여 있는 값은 문자열로 해석됩니다.
    • '안녕, 세상!', "한글 프로그래밍 언어 나무"

논리형

  • 아직 논리형은 구현이 안되있고 10이 대신하고 있습니다.
  • 거짓 내장 변수가 있는데, 1, 거짓0을 반환합니다.
  • 조건문 등에서 사용할 수 있습니다.

없음

  • 내장 변수 없음은 JS에서 undefinednull, 파이썬에서 None의 역할을 합니다.
  • 내장 변수 없음은 0을 반환합니다.

배열

  • 여러개의 값들을 하나로 묶은 값입니다. 대괄호쌍 안에 쉼표로 구별해 입력합니다.
    • [1, "이", [3.1, "배열", 참]]
  • 배열 안의 값은 대괄호를 이용해 접근할 수 있습니다.
    • [1, "2", "삼"][1]은 배열의 2번째 원소인 "2"입니다.
    • 첫번째 원소의 인덱스는 0입니다.
    • 현재 배열의 원소의 내용을 바꾸는 기능(배열[인덱스] = 값)은 아직 구현되지 않았습니다.

객체

  • 아직 구현되지 않았습니다.

3. 연산자

산술 연산자

  • 숫자는 + - * / ^로 사칙연산을 할 수 있습니다(^는 거듭제곱입니다.).
    • 28+42, 10/2*10, 2+2*2
  • 또 숫자는 + -로 양수와 음수를 나타낼 수 있습니다.
    • +29, -3
  • 문자열은 +로 문자열을 합치고, *로 문자열을 반복할 수 있습니다.
    • "안녕, " + "세상!", "그" * 4 + " 뭐더라"
  • 배열은 +로 항목을 추가하고, -로 항목을 뺄 수 있으며, *로 배열에 배열을 합칠 수 있습니다.
    • 배열 = [1, "이", "three"]
      배열 + "2+2" #[1, "이", "three", "2+2"]
      배열 - 2 #[1, "이", "2+2"]
      배열 * [5, "六"] #[1, "이", "2+2", 5, "六"]
      콘솔에_보여주기(배열) #[1, "이", "2+2", 5, "六"]
      

비교 연산자

  • 값이 같은지는 ==로, 값이 다른지는 !=로 확인합니다.
    • 10 * 10 == 100, "가나다" != "라마바"
  • 숫자는 < > <= >=로 비교할 수 있습니다.
    • 1 < 2, 39 > 29

논리 연산자

  • AND 연산자 &는 왼쪽과 오른쪽 모두가 참(1)인 경우에만 1(참)로 처리합니다.
    • 참 & 참, 10 == 10 & 38 < 73
  • OR 연산자 |은 왼쪽과 오른쪽 중 하나라도 참(1)이면 1(참)로 처리합니다.
    • 29>=29 | 87>3, "ㄷㄷ" == "ㄷㄷ" | 28 == 39
  • NOT 연산자 !는 1(참)이나 0(거짓)을 반대로 뒤집습니다.
    • !거짓, !27 > 72

괄호

  • 괄호를 사용하면 계산 순서를 바꿀 수 있습니다.
    • 2 + 2 * 26, (2 + 2) * 28
    • -1 < 2 < 10(거짓), -1 < (2 < 1)1(참)

4. 변수

변수 선언

  • 변수 선언은 =을 이용합니다. 변수명 = 값 형식으로 선언하며, 값을 갱신할 때에도 같은 문법을 사용합니다.
  • 변수 이름은 한글, 알파벳, 숫자, _(언더바), $(달러)를 사용할 수 있습니다. 숫자는 변수의 첫 글자에 올 수 없으며, 변수명으로 내장 함수나 내장 변수의 이름을 사용할 수 없습니다.

변수 불러오기

  • 변수는 변수명으로 불러옵니다.

예시

올해 = 2021
콘솔에_보여주기(올해) #2021

내장 변수

  • 내장 변수는 나무에서 기본으로 지원하는 변수로, 수정이 불가능합니다.

  • 내장 변수 목록은 다음과 같습니다.

    이름
    1
    거짓 0
    없음 0
    원주율 π(3.14159...)

4. 제어문

조건문

  • 나무에서 조건문을 쓸 때에는 만약 키워드를 사용합니다.
  • 조건문 형식은 다음과 같습니다.
    만약 조건1 라면/이라면
    	#조건1이 1(참)일 때 실행될 내용
    아니면서 조건2 라면/이라면
    	#조건1이 0(거짓)이면서 조건2가 1(참)일 때 실행될 내용
    아니면
    	#조건1과 조건2 모두 0(거짓)이면 실행될 내용
    
    
    아니면서아니면은 생략 가능하며, 라면이라면 둘 다 사용 가능합니다.

반복문

  • 나무에서 반복문을 쓸 때에는 반복하기 키워드를 사용합니다.
  • 반복은 반복 그만으로 멈춥니다.
  • 반복문 형식은 다음과 같습니다.
    반복하기
    	#반복할 동안 실행될 내용
    
    	만약 조건1 이라면
    		반복 그만
    	
    
    

5. 함수

함수 선언하기

  • 나무에서는 함수 키워드로 함수를 선언합니다.
  • 다음은 함수 선언 예시입니다.
    함수 함수명(매개변수1, 매개변수2, ...)
    	#함수 내용
    
    	리턴 리턴값
    
    
    매개변수는 생략 가능합니다. 단, 괄호는 꼭 넣어야 합니다.
리턴
  • 나무의 함수에서는 리턴 리턴값으로 리턴을 합니다.

함수 불러오기

  • 함수는 함수명(매개변수1, 매개변수2, ...)로 불러오며, 매개변수는 생략 가능합니다. 단, 괄호는 꼭 넣어야 하며 괄호를 넣지 않으면 <함수 함수명>이 반환됩니다.

익명 함수

  • 나무에서 익명 함수를 선언할 때에도 일반 함수를 선언하는 것처럼 함수 키워드를 사용합니다.
  • 다음은 익명 함수 선언 예시입니다.
    함수명 = 함수(매개변수1, 매개변수2, ...)
    	#함수 내용
    
    	리턴 리턴값
    
    마찬가지로 매개 변수는 생략 가능하지만, 괄호는 꼭 넣어야 합니다.

내장 함수

  • 내장 함수는 나무에서 기본으로 지원하는 함수로, 수정이 불가능합니다.

  • 다음은 나무의 내장 함수 목록입니다.

    이름 설명
    콘솔에_보여주기(내용) 내용을 콘솔에 보여줍니다.
    콘솔_지우기() 콘솔의 모든 내용을 지웁니다.
    숫자인가(값) 이 숫자면 1(참), 아니면 0(거짓)을 반환합니다.
    문자열인가(값) 이 문자열이면 1(참), 아니면 0(거짓)을 반환합니다.
    배열인가(값) 이 배열이면 1(참), 아니면 0(거짓)을 반환합니다.
    함수인가(값) 이 함수면 1(참), 아니면 0(거짓)을 반환합니다.
    기다리기(초) 의 값만큼 기다립니다.
    문자열로(값) 을 문자열로 바꾼 것을 반환합니다.
    실행하기(파일명) 이름이 파일명인 파일을 컴파일하고 실행합니다.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

namu-0.0.4.2.tar.gz (19.1 kB view hashes)

Uploaded Source

Built Distribution

namu-0.0.4.2-py3-none-any.whl (15.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page