코드 블록을 정의하기 위해 들여 쓰기를 사용하는 Python과 이전의 프로그래밍 언어 이외의 다른 프로그래밍 언어는 무엇입니까? [닫은]


12

파이썬 은 들여 쓰기를 사용하여 구문 적 으로 코드 블록을 정의합니다. ( Python Language Reference의 Compound 문 을 참조하십시오). 몇 년 동안 파이썬을 사용한 후에도 나는 여전히이 구문 기능에 흥미를 느낍니다.

그러나 나는 궁금합니다 : 파이썬과 "전임자"(*) 언어 ABC 외에 코드 블록 정의를 위해 들여 쓰기를 사용하는 다른 프로그래밍 언어가 있습니까? 코드 블록 은 여기서 "어떤 방식 으로든 하나의 구성 요소로 취급되는 여러 명령문"을 의미합니다.

특히 실용적인 프로그래밍 언어에 관심이 있지만 난해한 언어도 언급 할 가치가 있습니다.


(*) : " 선임자 "는 여기서 더 나은 단어를 알기 위해 내가 선택한 단어입니다. 파이썬을 만든 Guido van Rossum 은 다음과 같은 인터뷰에서 들여 쓰기와 관련하여 파이썬과 ABC의 관계를 설명했습니다 . " 그룹화를위한 들여 쓰기의 선택은 파이썬에서 새로운 개념이 아니 었습니다. 나는 이것을 ABC에서 물려 받았습니다. "


15
"기능 X의 프로그래밍 언어 목록을 알려주십시오"는 컴퓨터 과학 문제라고 생각하지 않습니다.
David Richerby

2
핵심 표현 방법에 대해 적절한 들여 쓰기가 필요한 공백 언어 자체가 있는 이유는 무엇입니까?
penguin359

1
긴 형식의 YAML은 엄밀히 말하면 프로그래밍 언어는 아니지만 언급 할 가치가 있습니다. 파이썬 후에 누군가가 만날 수있는이 기능을 가진 다음으로 가장 가능성이 높은 언어 중 하나 일 것입니다.
Austin Hemmelgarn

1
@ penguin359 Whitespace도 생각했습니다. 들여 쓰기는 블록을 정의하는 데 사용되지 않기 때문에 질문에 대한 대답은 아닙니다. 그러나 분명히 공백이 전체적으로 가장 중요한 언어입니다.
피터-모니카 복원 복원

1
@DavidRicherby 속성 (예 : 분류)별로 그룹화하는 것은 과학의 일부입니다. 예를 들어 생물학 StackExchange에 대한 흥미로운 질문은 다음과 같습니다. " 다른 동물이 두 발로 걷는 이유는 무엇입니까? " .
halloleo 2016 년

답변:


23

Wikipedia에는 ​​오프사이드 규칙 1 을 사용하는 광범위한 언어 목록이 있습니다 .

  • 알파벳
  • 우우
  • 버디 스크립트
  • 코브라
  • CoffeeScript
  • 모이다
  • 카레
  • 엘릭서 ( , do:블록)
  • 느릅 나무
  • F # ( #light "off"지정하지 않은 경우)
  • 요정
  • 하스켈 (단에 where, let, do, 또는 case ... of절 괄호가 생략 될 때)
  • 통보 7
  • 규칙을 도입 한 추상 언어 인 ISWIM
  • 라이브 스크립트
  • 미란다
  • 네 메르
  • 옥캠
  • 프롬
  • 파이썬
  • 예를 들어 SRFI 119 사용시 구성표
  • 회전
  • 특대

1 : 나는이 용어를 내 앞에서 들어 본 적이 없다.


2
오프사이드 규칙은 흥미로운 발견입니다!
halloleo

3
귀하 또는 위키 백과가 이해할 수있는 언어인지는 모르지만 Makefiles도 들여 쓰기를 사용합니다.
TheWildHealer

@TheWildHealer 위키 백과 기사에는 프로그래밍이 아닌 언어 (Make, YAML, RST와 같은 항목 포함) 섹션이 있습니다. OP가 프로그래밍 언어에 관해 물었 기 때문에 나는 인용하지 않았다.
Bergi

다음 번에 눈을 be 게 될거야. 고마워.
TheWildHealer

10

:있다 느릅 나무 , 하스켈 이전 모델, 미란다 와 그 이전의 ISWIM , YAML 공간 구문과 탭에 대한 중요하다 금지, 오캄 , 커피 스크립트Cokescript 모두 목표 및 비전 등의 자바 스크립트와 언어 컴파일러에 언어이다 이때 공백 .

대화식 정리 증명 자인 Agda 도 있습니다. 아마 당신이 생각했던 것은 아니지만 어휘 분석기는 공백에 매우 민감합니다.
Makefile- 탭 기반 의도로 대상을 수집합니다.


1
Haskell은 미란다 언어를 기반으로했습니다.
kne

1
AGDA은 매우 하스켈과 같은 구문을 가지고 있으며, 들여 쓰기 및 공간 모두에 민감 : (x-y)아니다 (x - y)는 영업 이익에 대한 "실제적인"충분하지 않을 수 있습니다 경우에도).
chi

1
또한 CoffeeScript와 잘 알려지지 않은 CokeScript
Bergi

5
YAML이 중요하다면, Makefiles도 마찬가지라고 생각합니다
Izkata


4

만들기는 아마 제한된 구문과 능력으로, 당신이 생각하고있는 것을 매우 아니더라도, 당신의 설명을 맞는다.

그것은 악명 의 코드 블록 (표시 조리법을 하나 개의 탭 문자 : 공백의 특정 양식). 대체 방법을 사용할 수 있지만 (예 : 대체 문자를 사용하는 GNU Make 지원 ) 실제로는 거의 사용되지 않습니다.

가장자리에 떠오르는 또 다른 예는 Ansible 플레이 북 입니다. 그것들은 들여 쓰기에 크게 의존하는 YAML 로 지정됩니다 . YAML은 프로그래밍 언어는 아니지만 Ansible 플레이 북은 도메인 별 프로그램으로 간주 될 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.