2016-11-22 15 views
2

나는 단순히 상자 또는 의사 코드를 작성하는 것보다 더 나은 코드를 사용하여 코드를 추론 할 수 있기를 바랍니다.가짜 코드에 대해 공식화 된 고수준 표기법이 있습니까?

여기서 중요한 것은 종이입니다. 기계에서, 나는 매우 빠르게 linter/컴파일러로 고수준 언어를 사용할 수 있으며, 키보드는 할 수있는 일을 다소 제한합니다.

케이스 스터디는 APL입니다. APL은 세미 논김 거리로 "쓰기 전용"이라고 표현합니다. 여기 example이다

m ← +/3+⍳4

(설명 :. ⍳4 배열, [1,2,3,4] 후 3 다음 합산되어, 각 구성 요소 및 변수 m에 저장된 결과에 첨가 생성)

을 그것이 얼마나 간결한 지보십시오! 귀하의 하루 업무에 그 기호를 입력하는 것을 상상해보십시오! 그러나 화이트 보드에 이오타와 화살표를 쓰면 시간과 잉크를 절약 할 수 있습니다.

m = foldl (+) 0 (map (+3) [1..4])

그리고 파이썬 :

여기의 하스켈 상당의

reduce(add, map(lambda x: x+3, range(4)))

그러나이 간결한 프로그래밍 언어 뒤에 원리는 다르다 : 그들은 고 설명하는 단어 및 문장을 사용하여 (예 : fold),이 공통 조치에 대한 기호를 쓰고 싶습니다.

이러한 형식화 된 의사 코드가 있습니까?

+0

미리 감사드립니다. – 0atman

+1

자신이 그것을 사용할 수있는 경우, 다른 사람이 발명 한 표기법을 배우는 것보다 자신의 표기법을 생각해내는 것이 자신의 도메인과 사고 방식에 정확하게 맞는 것이 더 쉽지 않습니까? – svick

+1

호기심 (그리고 나는 단지 APL을 안다.) : Python과 Haskell-Samples는 정말로 동등한가? 그 코드에서'3'은 어디에 있습니까? (그리고 BTW, 나는 완전히 에반스에 동의한다 : APL이 특히 단어 대신 기호를 찾는다면 가장 좋은 대답 인 것 같다) – MBaas

답변

2

snarky는 아니지만 APL을 사용할 수 있습니다. 그것은 원래 프로그래밍 언어로 바뀌기 전에 원래 수학 표기법으로 발명되었습니다. Backus 'Turing Award 강연에서 여러분이 말하는 것 같아요. 마지막으로, 아마도 Z 표기법이 원하는 것입니다. https://en.m.wikipedia.org/wiki/Z_notation

+0

APL 또는 Z를 사용할 때의 문제는 웹 앱에 대한 추론을위한 올바른 도메인이 아니라는 것입니다. – 0atman

+0

흠, 죄송하지만 문제가 보이지 않습니다. 콘솔, Windows-Form 또는 HTML 출력 여부에 관계없이 의사 코드 수준에서 차이를 만들어야합니다. 알고리즘과 데이터 흐름 등이 주요 관심사가 아닌가? – MBaas

+1

BTW, 물론 APL의 대부분/모든 맛을 가진 웹 응용 프로그램을 개발할 수 있습니다. 가장 잘 알고있는 것은 http://miserver.dyalog.com입니다. - Dyalog APL은 개인 용도로는 무료입니다. :) – MBaas