4 번째와 5 번째 프로그래밍 언어 세대 란 무엇입니까? 더 있나요? [닫은]


36

학교 / 대학 수준으로 분류되는 경우가 많기 때문에 널리 사용되는 프로그래밍 언어 (C #, Java, C ++)는 모두 3 세대 언어입니다 (기계의 물리적 부분에서 더 높은 추상화 수준으로). 또한 어셈블리 언어는 2 차 언어로, 기계 언어는 1 세대 언어로 분류됩니다.

처음에는 SQL이 4 세대 언어로 간주되어야한다고 생각했습니다. 더 추상적이고 반복적 인 세부 사항과는 거리가 먼 것입니다.

지금은 4 세대와 5 세대 언어가 있다는 것을 알았습니다. 그러나 프로그래밍 언어 나 기술이 4 세대 또는 5 세대 언어로 분류되는 기초는 무엇입니까?

또한 6 세대 또는 7 세대 언어도 있습니까?



12
오, 사람들 만이 n 번째 n 세대 언어를 n으로 만드는 것에 동의 할 수 있다면 ... 진정으로 묶을 수있는 기준은 없습니다. 동의하지 않음).
Oded

5
C는 어떤 "세대"입니까? 4 세대 및 5 세대 언어의 예를 제시하고 각 세대를 구성하는 요소를 알려주시겠습니까? 즉, 언어를 세대 'n'으로 정의하는 기준은 무엇입니까?
Mawg

3
Tbh 저는 X 세대 언어의 개념이 실제로 적절하다고 생각하지 않습니다.
Pieter B

5
저는 14 세대 언어를 만들고 있는데, 그것은 일곱째 아들의 일곱째 아들이기 때문에 순수한 마법사가 될 것입니다 ....
David Conrad

답변:


36

간단한 세대 개요 : 빌딩 블록을 만들 때 언어는 n 세대입니다.

  1. 비트
  2. 명령
  3. 추상 작업
  4. 도메인 객체
  5. 프로그램 목표

따라서 Google Go 또는 Apple Swift와 같은 새로운 언어조차도 여전히 3 세대입니다. 정규식은 텍스트 일치 언어이므로 초기 4 세대 언어입니다. 이 정의에 따르면 4 세대는 DSL과 밀접한 관련이 있습니다. 그러나, C ++와 같은 언어와 같은 실제 유형을 가질 수 있습니다 LengthWeight에 추가 float하고 double그들에게 하이브리드 3 / 4 세대를 만든다.

5 세대 언어는 일반적으로 실현되지 않은 수준의 AI가 필요하기 때문에 실제로 존재하지 않습니다. 프로그래머가 여전히 필요하다는 사실은 프로그래머가 아닌 사람들이 정확히 원하는 것을 컴퓨터에 정확하게 말할 수 없기 때문입니다.


1
마지막 단락에 대한 NB : J.Pitrat의 블로그 에는 AI 및 프로그래머와 관련된 흥미로운 내용이 있습니다
Basile Starynkevitch

5
DONALD problem그 블로그의 문제 하이라이트에 대한 방법까지 우리는 거리에서 아직도 sudo make me a sandwich, 그리고 걱정 스레 얼마나 진전 우리는 지난 50 년 동안했습니다.
MSalters

1
@AndrewHoffmann 그게 뭐가 문제 야? 다리를 건설하는 경우 구조물에 적합한 종류의 재료를 사용하는 것이 좋으며 리벳이 올바른 크기 (및 크기는 몇 개입니까)가 더 좋습니다.
didierc

1
@AndrewHoffman : AI는 소프트웨어 엔지니어링 주제가 아닌 학계에서 주로 CS 주제였습니다. 실제 엔지니어링이 도움이되었을 수도 있습니다. 최초의 자율 주행 자동차가 Google의 자동차 인 것처럼 보이는 데는 충분한 이유가있을 것입니다.
MSalters

6
@AndrewHoffman-스스로 말하십시오. 저는 소프트웨어 엔지니어이며 매일 표준 엔지니어링 관행을 사용합니다. 또한 저는 공인 엔지니어입니다. 나는 당신의 의견 전체가 사실이 아닌 개인적인 경험에 근거한 말이 아니라고 생각합니다.
엔지니어 돌리

88

"n 세대 언어"는 유행어입니다. 마케팅 용어입니다. n> 2의 "n 세대"를 정확하게 정의하는 것에 대한 보편적으로 인정 된 정의는 없습니다. 어떤 사람들은 Perl 또는 Python과 같은 "스크립팅"언어를 C보다 훨씬 수준이 높기 때문에 4GL로 분류합니다. 4GL의 특성은 도메인과 관련이 있다는 것입니다 (예 : SQL). 일부 멍청이들은 심지어 90 년대 중반의 언어 (객체 오리엔테이션과 가비지 수집 및 리플렉션으로 가득 찬 언어)가 Fortran (50 년대) 및 C (70 년대)와 동일한 "3GL"범주에 속한다고 생각합니다.

"4 세대 언어"와 같이 혼동 된 분류는 사용되지 않습니다. 오래된 교과서에서 보거나 80 년대에 프로그래밍을 시작한 사람들로부터들을 수 있지만“4GL”과 같은 태그는 저자가 정확히 무엇을 의미하는지에 대한 설명 없이는 가치가 없습니다.

“4GL”의 의미를 즉시 이해하는 사람은 없으므로 그러한 분류를 사용해서는 안됩니다. 대신, 특정 용어를 사용하여 자신이 의미하는 바를 정확하게 전달하십시오. 예를 들어 NASM, LLVM IR 및 Jasmin은 모두 어셈블리 언어이지만 후자의 두 대상 VM이며 마지막 VM은 객체 지향 프로그래밍 언어입니다. 이 2GL은 모두 있습니까? SQL은 80 년대 데이터베이스 쿼리를위한 부분적으로 선언 된 도메인 별 언어입니다. TeX는 70 년대부터 조판하기위한 도메인 별 언어입니다. 둘 다 도메인 특정 적이기 때문에 둘 다 4GL입니까?


22
8G 언어를 개발 중입니다. 마음이 날 것입니다. ... 심지어 감자 튀김도 될 것입니다. 나는 ...의 세 가지 쉬운 지불에 대한 라이센스를 판매합니다 ...)
BrianH

10
나는 프로그래밍 언어 세대가 어떻게 제트 전투기 세대에 해당해야한다고 생각 한다 . 이 정도의 놀라움은 주제에 대한 RFC를 정당화하기에 충분 해 보입니다.
toniedzwiedz

11
아, 이것은 5 세대 언어가 곧 사용하기 쉽기 때문에 대부분의 프로그래머가 일을하지 않을 때 기억을 되살립니다.
로봇 고트

5
@Izkata 1GL은 이진 기계 코드입니다 (예 : amd64 명령어 세트). 2GL은 기계어 코드 (예 : GAS)에 대한 니모닉을 제공하는 텍스트 어셈블리 언어입니다. 3GL은 기계 명령어를 추상화하는 것입니다. Fortran은 프로그래머가 다음과 같은 표현식과 변수를 사용할 수 있도록함으로써이를 최초로 수행했습니다 (I + 7) * 3. 그러나 3GL 카테고리가 끝나는 위치와 4GL 및 5GL이 구체적으로 무엇을 의미하는지에 대해서는 합의가 없습니다.
amon

5
"일부 nitwits는 심지어 Java가 Fortran과 동일한"3GL "범주에 속한다고 생각합니다."-다른 nitwit은 두 가지가 매우 다른 것처럼 보일 경우 분류 체계가 존재하지 않는다고 생각합니다. 그 계획과 관련된 어떤 기준에 따라 함께? ;-p
Steve Jessop
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.