프로그래밍 언어학에 대한 연구가 있었습니까?


18

프로그래밍 언어는 형식적인 언어 이지만 많은 형식주의와 달리 작동 의미론 또는 마크 업 언어의 경우 표시 의미론에 의해 정의 된 고유의 의미를 갖습니다 . 그리고 프로그래밍 언어는 실제로 공식적이지만 의사 소통의 측면에서 자연어와 매우 유사합니다.

프로그래밍 언어의 개발은 인공적인 반면, 진화, 차용, 혼합 및 변이의 자연어 과정은 모두 분명한 인공 대응 물을 가지고있다. 그래서 궁금합니다 : 언어학 자의 관점에서 프로그래밍 언어의 진화와 행동에 대한 대규모의 심층적 인 연구가  있었습니까?


6
Perl은 언어 학자에 의해 만들어졌으며 영어 자체보다 더 지저분합니다.
Job

1
@Job : 23 년 이상 사용되어 왔으며 수많은 유닉스 계열 플랫폼에 기본적으로 설치되어 있으며 자동화 (쉘 스크립팅보다 깔끔한)에서 웹 개발 (그런 길에 이르기까지)에 이르기까지 정기적으로 계속 사용되고 있습니다. 정규 표현식 (사실상 업계 표준을 설정 한)을 사용한 텍스트 처리의 원래 목적에 비해 PHP보다 깔끔합니다. 확실히 그것은 지저분하지만 사람들에게 잘 작동하는 방식으로 Perl의 개발에서 Larry의 언어학 배경이 유익한 곳입니다.
Jon Purdy

@Job 효과는 "Worse is Better" en.wikipedia.org/wiki/Worse_is_better라고 합니다.
Apalala

@ Aplala : 그것은 관련이 없습니다. 펄은 기능이 풍부 하고 복잡 하고 인기가 많기 때문에 반례 입니다.
Jon Purdy

답변:


6

현대 프로그래밍이 불가능한 공식 문법은 언어 학자 Noam Chomsky 의 연구의 산물이라는 것을 기억하십시오 .

자동차 사고로 인해 내가 요청한 주제에 대한 졸업 논문을 완성하지 못 했으므로 참고 할 수있는 의견은 없으며 의견 만 있습니다.

음성 언어는 상황에 따라 어떤 속도로든 진화하며, 예측할 수없는 인간의 상황처럼 예측할 수없는 방식으로 발전합니다. WW2의 결과는 일본어에 큰 영향을 미쳤다. 영국인, 호주인, 남아프리카 인 및 북미 인은 같은 언어를 사용하지 않습니다. 스페인 식민지였던 동사의 동사 편각의 사용은 200 년의 독립 이후에 상당히 달라졌다 (전 콜로니는 스페인의 스페인어가 고풍 적이라고 생각한다 ).

발음에 대한 효율성의 힘만으로도 다른 지역에서 다른 주파수로 사용되는 다른 단어를 다르게 발음 할 수 있습니다. 매우 일반적인 단어는 훑어 보거나 철자가 틀리며 덜 일반적인 단어는 최대한 정확하게 표시됩니다.

변형, 뉘앙스 및 진화를 가진 자연 언어는 컴퓨터의 결정론에 적합하지 않습니다. (Gee! 오해와 이차 해석의 공통점을 감안할 때, 인간 사이의 가장 단순한 상호 작용에도 적합하지 않은 것 같습니다 (소녀 / 남자 친구의 말과 그 의미에 대한 농담 인용은 자제)


우리의 연구 (저는 교사를 가졌습니다)에서 우리는 그리스어와 라틴어를 보았습니다. 왜냐하면 그들은 단어가 자신의 편각으로 문장에서 가질 수있는 모든 역할을 잘 정의한 문법을 ​​가지고 있었기 때문입니다. 그것은 충분하지 않았고 사람들이 실제로 그 언어를 어떻게 말했는지에 대한 기록은 현대 언어에서와 같이 문법이 나타내는 것과는 매우 다르다고 말합니다.
Apalala

4
고대 그리스어 및 라틴어와 관련하여 여기서 문제의 일부는 살아남은 텍스트가 수필, 계약서, 법적 판결 등과 같이 본질적으로 형식적인 경향이 있다는 것입니다. 우리가 매일 보내는 메시지에 대해 생각한다면- "Hi Honey, Please get 집으로가는 우유 "와"짐-9 시경에 대한 Casey 보고서 기억하기 "-고대 로마에서 이러한 일시적인 메시지의 대부분은 시간이 지나면 사라질 것입니다.
HorusKol

2
그것은 사실이 아닙니다. 어머니는 때때로 그녀의 고등학교 라틴어 수업에 대해 이야기하고, 로마 귀족에서 전차 운전사에게 보낸 메모를 번역했습니다. 요점은 "제발, 러시아워에, 그렇게 병거의 전차 뒤에 갇히지 마십시오. 나는 그가 그의 말에게 무엇을 먹이는지 모르지만 악취는 끔찍합니다."
John R. Strohm

4

질문을 다시 읽었으며 원래 답변으로는 해결되지 않았다고 생각합니다. 다른 시도가 있습니다.

아니요, 제가 알고있는 프로그래밍 언어 언어학에 대한 심각한 연구는 없었습니다. 두 가지 주요 지점과 하위 지점에 대한 언어 계보가 추적되었습니다.

분야에서 수십 년간 우리의 사람들을 위해 프로그래밍을 언어가 이렇게 하나 발견 어떤의 대부분의 측면 교배하고있는 것은 분명하다 순수을 가장 현대적인 프로그래밍 언어 패러다임, 지금이라고 multiparadigm 프로그래밍 언어 : C #을, 파이썬, 자바 .. .. 이전에는 OCaml 및 Haskell과 같은 순수 기능 언어에도 충분한 절차 ( 모나드를 통해 ) 및 OO 기능이 포함되어있어 무엇이든 할 수 있습니다.

내가 생각한 것은 주어진 하위 문제에 올바른 패러다임을 적용하기 위해 프로그래밍 언어를 전환 해야하는 것이 비용이 많이 든다는 것입니다 (어리석지 않은 경우) .

고도 병렬 및 비동기 시스템 영역의 추세에는 예외가 남아 있습니다. 선호하는 언어는 다음과 같이 엄격하게 작동합니다. Erlang 입니다. 아마도 복잡한 시스템에 대해 기능적으로 생각하기가 더 쉽기 때문일 것입니다.

진화의 비 패러다임 부분은 구문에 있습니다. 암호 프로그램을 장려하거나 허용 한 언어는 점점 더 많이 사용되지 않고 있습니다 ( APL , AWK , 심지어 Perl 및 LISP). 오늘날 지배적 인 구문은 C (C ++, C #, Java, Objective-C, Scala, Go, IML, CSS, JavaScript 및 Python), Pascal (Fortran 90+)과 같이 읽기 쉬운 언어와는 달리 읽기 쉬운 언어입니다. x), 스몰 토크 (루비), ML / 미란다 (OCaml, Haskell, Erlang) 및 SGML (HTML, XML).

이 다이어그램은 완전히 정확하지는 않지만 최신 정보는 아니지만 1970 년대 언어 당 사이트 이후에 얼마나 많은 프로그래밍 언어가 수렴되었는지에 대한 좋은 아이디어를 제공합니다.

프로그래밍 언어 진화


1
이것은 내가 찾던 것과 훨씬 비슷합니다. 나는 형식적인 문법으로 작업함으로써 오는 구문과의 명백한 연관성 위에서 형태학 및 음운론과의 직접적인 상관 관계를 찾고 있다고 생각합니다.
Jon Purdy

@Jon 글쎄, 다른 명백한 추세는 영어가 문법적으로나 문법적으로 모든 프로그래밍 언어의 기초가되는 자연 언어이며 지배 언어라는 것입니다. 프로그래밍 언어는 왼쪽에서 오른쪽으로, 동사 우선입니다. 예를 들어, 일본어는 매우 다르지만 일본어 스타일의 프로그래밍 언어를 개발하려는 노력은 없습니다. en.wikipedia.org/wiki/Japanese_language#Sentence_structure
Apalala

@Aplala : SOV 순서는 스택 지향 언어에서 일반적이며, 중위 연산자는 SVO로 계산되며 함수 (병리 적 예는 Lisp)는 VSO입니다. 영어는 확실히 큰 영향을 미칩니다.하지만 다른 요인이 작용한다고 생각합니다.이 연구를 직접해야 할 수도 있습니다. : P
Jon Purdy 2016 년

@Jon 예, 스택 기반 및 SOV 인 Forth 및 Postcript를 잊었습니다. 연구를 시작하면 알려주십시오. 나는 대학에서 언어 이론을 전공했으며 프로그래밍 언어는 여전히 내 취미입니다. 나는 그들 중 많은 것들 (Simula, Prolog, LISP)을 직접 기억합니다.
Apalala

@Jon 당신은 많은 스페인어를 사용하는 프로그래머가 그들이 사용하는 프로그래밍 언어, 라이브러리, 프레임 워크, 표준, 도구와 잘 맞지 않더라도 스페인어로 식별자를 사용하는 것을 선호 할 것입니다. 그들의 프로그램은 "Spanglish"로 끝납니다. 동유럽과 같이 로마 / 라틴계 유산을 가진 다른 언어로 된 모국어를 가진 프로그래머와 같은 것을 보았습니다. 나는 극동 (중국, 일본, 한국인), 러시아 또는 아랍 프로그래머들이 무엇을 좋아하는지 전혀 모른다.
Apalala

1

나는 @Apalala의 답변을 좋아합니다.이 답변은 몇 가지 주요 범용 언어에 대한 수렴을 보여줍니다. 좋은 아이디어는 다른 사람들이 조만간 선택할 수 있기 때문에 의미가 있습니다.

내가 추가하는 것은 언어를 사용할 때마다 용어를 추가하고 해당 언어에 더 적합한 언어로 변환하여 언어를 확장해야한다는 것입니다. 때때로 이것은 매우 간단하지만 때로는 그렇지 않습니다. 다음은 그다지 간단하지 않은 예입니다.

범용 언어로 인정되는 속성은 새로운 도메인 별 언어의 정의를 지원하는 정도입니다.

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