프로그래밍 언어 생성

Programming language generations

프로그래밍 언어는 여러 프로그래밍 언어 세대로 분류되어 왔다.역사적으로, 이 분류는 프로그래밍 스타일의 힘이 증가하는 것을 나타내기 위해 사용되었다.후기 작가들은 이전에 중요하게 여겨졌던 구별이 현재의 관습에 덜 중요해짐에 따라 그 의미를 다소 다시 정의했다.

세대

1세대(1GL)

예: 기계 수준의 프로그래밍 언어

1세대 프로그래밍 언어(1GL)는 기계 수준 프로그래밍 언어다.[1]

1세대(프로그래밍) 언어(1GL)는 1세대 컴퓨터를 프로그래밍하는 데 사용되는 기계 수준 언어인 프로그래밍 언어의 그룹이다.원래 1세대 언어를 편찬하거나 조립하는 데 통역이 사용되지 않았다.1세대 프로그래밍 지침은 컴퓨터 시스템의 전면 패널 스위치를 통해 입력되었다.

1GL의 지침은 1s와 0s로 표현되는 이진수로 만들어진다.이것은 기계에 대한 이해에 적합한 언어를 만들지만 인간 프로그래머가 해석하고 배우는 것을 훨씬 더 어렵게 만든다.

2세대(2GL)

예: 조립 언어

2세대 프로그래밍 언어(2GL)는 조립 언어를 세대별로 분류하는 방식이다.[1][2][3]

3세대(3GL)

예: C, C++, Java, Python, PHP, Perl, C#, BASIC, Pascal, Fortran, ALGOL, COBOL

3GL은 훨씬 더 기계에 독립적이며(휴대용) 프로그래머 친화적이다.여기에는 집계 데이터 유형에 대한 향상된 지원 및 컴퓨터가 아닌 프로그래머에게 유리한 방식으로 개념을 표현하는 기능과 같은 특징이 포함된다.3세대 언어는 컴퓨터가 비필수적인 디테일을 처리하게 함으로써 2세대 언어에 비해 향상된다. 3GL은 이전 세대의 언어보다 추상적이어서 1세대와 2세대 언어에 비해 수준 높은 언어로 간주될 수 있다.1950년대 후반에 처음 도입된 포트란, 알골, COBOL은 초기 3GL의 예다.

C, C++, C#, 자바, BASIC, 파스칼과 같은 오늘날 가장 인기 있는 범용어들도 3세대 언어들이지만, 이들 각각의 언어는 다른 현대적 특성에 기초하여 다른 범주로 더욱 세분될 수 있다.대부분의 3GL은 구조화된 프로그래밍을 지원한다.많은 사람들이 객체 지향 프로그래밍을 지원한다.이와 같은 특성은 단순히 3GL이 되기 보다는 언어를 설명하는 데 더 자주 사용된다.

4세대(4GL)

예: ABAP, Unix Shell, SQL, PL/SQL, Oracle Reports, R

4세대 언어는 매우 특정한 프로그래밍 영역에 특화된 경향이 있다.[4][5] 4GL은 데이터베이스 관리, 보고서 생성, 수학 최적화, GUI 개발 또는 웹 개발 지원을 포함할 수 있다.

5세대(5GL)

예: Prolog, OPS5, Mercury

5세대 프로그래밍 언어(5GL)는 프로그래머가 작성한 알고리즘을 사용하는 것이 아니라 프로그램에 주어진 제약을 이용한 문제해결에 기초한 프로그래밍 언어다.[6]대부분의 제약에 기반한 논리 프로그래밍 언어와 몇몇 다른 선언적 언어는 5세대 언어들이다.인공지능(AI) 기술을 활용해 스스로 문제를 해결한다.

4세대 프로그래밍 언어는 특정 프로그램을 구축하기 위해 고안된 반면, 5세대 언어는 프로그래머 없이도 컴퓨터가 주어진 문제를 해결하도록 고안된 것이다.이렇게 하면 사용자는 어떤 문제를 풀어나가기 위한 일상이나 알고리즘을 어떻게 구현해야 할지 고민하지 않고 어떤 문제를 풀 필요가 있는지, 어떤 조건을 충족시켜야 하는지에 대한 걱정만 하면 된다.5세대 언어는 인공지능이나 AI 연구에 주로 쓰인다.OPS5머큐리리스프를 기반으로 구축된 ICAD와 마찬가지로 [7]5세대 언어의 예다.KL-ONE은 관련 아이디어, 즉 프레임 언어의 예다.

역사

"1세대"와 "2세대" 프로그래밍 언어의 용어는 "3세대"라는 용어의 연어 이전에 사용되지 않았다. 이 세 용어는 프로그래밍 언어의 초기 개요에서 언급된 것이 없다.제3세대 컴퓨터 기술의 도입은 새로운 세대의 프로그래밍 언어의 창출과 동시에 이루어졌다.이러한 기계들의 세대교체를 위한 마케팅은 아래에서 논의된 고급 프로그래밍 언어의 몇 가지 중요한 변화와 관련이 있으며, 기계 코드 언어의 이름을 첫 번째 세대로 소급하여 명칭을 바꾸면서 높은 수준의 프로그래밍 언어들 간의 2/3세대 구별에 기술적인 내용을 제공한다.2세대로서 tion, 그리고 조립언어.

처음에는 어셈블리보다 높은 수준의 모든 프로그래밍 언어를 '3세대'라고 불렀지만, 나중에는 '4세대'라는 용어가 도입되어 훨씬 더 높은 수준에서 작동한다고 주장하는 (당시 프롤로그, 도메인별 언어 등) 새로운 선언적 언어(당시)를 구별하려고 시도했다.파스칼, C, ALGOL, 포트란, BASIC 등과 같은 원래의 필수 고급 언어보다 사용자(예: 자연 언어 수준에서)가 더 많다.

고수준 언어(3세대 이상)의 "세대" 분류는 완전하게 정확하지 않았으며, 더 정밀한 분류는 객체 지향적, 선언적, 기능적 등 공통적인 용도를 얻으면서 아마도 나중에 폐기되었을 것이다.CC++ 그리고 나중에 자바C#, LISP to CLOST, Ada to Ada 2012, 그리고 심지어 COBOL 2002에 COBOL을 낳았다.그 '세대'에서도 새로운 언어가 등장했다.

참고 항목

참조

  1. ^ a b "Computer Hope, Generation 언어".
  2. ^ Brookshear, J. Glenn. Computer science : an overview (11th ed.). Addison-Wesley. pp. 240–241. ISBN 0-13-256903-5.
  3. ^ Vass, Péter. "Programming Language generations and Programming Paradigms" (PDF). Archived from the original (PDF) on 2020-01-29.
  4. ^ 제35회 하와이 국제 시스템 과학 회의 - 소프트웨어 엔지니어링을 위한 도메인별 언어 1002개.2011년 5월 16일 웨이백 머신보관.
  5. ^ Arie van Deursen; Paul Klint; Joost Visser (1998). "Domain-Specific Languages: An Annotated Bibliography". Archived from the original on 2009-02-02. Retrieved 2009-03-15.
  6. ^ Dong, Jielin, ed. (2007). Network dictionary. Saratoga, Calif.: Javvin Technologies, Inc. p. 195. ISBN 9781602670006.
  7. ^ E. Balaguusamy, 컴퓨터의 기초, Mcgraw Hill Education (인도), 2009, ISBN 978-0070141605, 페이지 340.