제4세대 프로그래밍 언어
Fourth-generation programming language4세대 프로그래밍 언어(4GL)는 3세대 프로그래밍 언어(3GL)의 발전으로 예상되는 언어 클래스에 속하는 모든 컴퓨터 프로그래밍 언어입니다.각 프로그래밍 언어 세대는 내부 컴퓨터 하드웨어의 세부 사항을 보다 높은 수준으로 추상화함으로써 언어를 보다 프로그래머 친화적이고 강력하며 다재다능하게 만드는 것을 목표로 합니다.4GL의 정의는 시간이 지남에 따라 바뀌었지만, 비트와 바이트에만 초점을 맞추는 것이 아니라 한 번에 많은 정보를 수집하여 더 많은 작업을 수행함으로써 나타낼 수 있습니다.4GL이라고 하는 언어에는 데이터베이스 관리, 보고서 생성, 수학적 최적화, GUI 개발 또는 웹 개발 지원이 포함될 수 있습니다.일부 연구자들은 4GL이 도메인별 [1][2]언어의 하위 집합이라고 말합니다.
4GL의 개념은 1970년대부터 1990년대까지 개발되었으며, 3GL의 개발 대부분과 중복되어 4GL은 "비절차적" 또는 "프로그램 생성" 언어로 식별되며, 3GL은 알고리즘 또는 절차적 언어인 것과 대조됩니다.C, C++, C#, Java 및 JavaScript와 같은 3GL은 다양한 용도로 여전히 인기가 있지만, 원래 정의된 대로 4GL은 데이터베이스, 보고서 및 [3]웹 사이트에 중점을 두고 사용됩니다.Python, Ruby, Perl과 같은 일부 고급 3GL은 범용 3GL [4]환경 내에서 일부 4GL 기능을 결합하고 있으며, 4GL과 같은 기능을 가진 라이브러리가 대부분의 인기 3GL의 애드온으로 개발되어 3GL과 4GL이 혼합된 언어를 만들어 내고 있어 [5]구분이 모호합니다.
1980년대와 1990년대에는 5세대 프로그래밍 언어(5GL)를 개발하기 위한 노력이 있었다.
역사
James Martin은 1981년 저서 Applications Development Without[6] Programmers(프로그래머 없는 애플리케이션 개발)에서 비절차적 고급 사양 언어를 지칭하기 위해 4GL이라는 용어를 처음 공식적으로 사용했습니다.초기 4GL은 Informatics MARK-IV(1967년) 제품과 Sperry의 MAPPER(1969년 내부 사용, 1979년 출시)에 포함되어 있었다.
'4GL'의 시작과 지속적인 관심의 동기는 여러 가지입니다.이 용어는 대규모 소프트웨어 제품 세트에 적용될 수 있습니다.또한 더 큰 의미적 특성과 구현 능력을 찾는 접근법에도 적용할 수 있습니다.3GL이 프로그래머에게 더 큰 힘을 제공했듯이, 4GL도 개발 환경을 더 많은 사람들에게 개방했습니다.
4GL의 초기 입력 방식에서는 카드의 태그가 유형 또는 기능을 식별하는 펀치 카드의 72자 제한(시퀀싱에 8바이트 사용) 내의 데이터 입력을 지원했습니다.몇 개의 카드를 적절히 사용하면, 4GL 덱은 다양한 처리 및 리포트 기능을 제공할 수 있습니다.한편, 3GL로 코드화된 동등한 기능은,[7] 1박스 이상의 카드를 포함할 수 있습니다.
72글자의 포맷은 하드웨어가 대용량 메모리와 터미널 인터페이스로 발전함에 따라 한동안 계속되었습니다.이러한 접근 방식은 제한에도 불구하고 매우 정교한 애플리케이션을 지원했습니다.
인터페이스가 개선되어 스테이트먼트 길이가 길어지고 문법에 의한 입력 처리가 가능해짐에 따라 더 큰 파워가 뒤따랐습니다.이에 대한 예는 Nomad 페이지에 설명되어 있습니다.
- Nomad의 위력을 보여주는 또 다른 예는 NCSS에 관한 컴퓨터 역사 박물관의 코멘트에서 Nicholas Rawlings가 설명하고 있습니다(아래 인용 참조).James Martin은 Rawlings에게 엔지니어 문제라는 표준 문제에 대한 노마드 해결책을 요구했다고 합니다.Martin은 "직무 등급이 평균 7점 이상인 엔지니어에게 6% 인상"을 요청했습니다.Martin은 "코볼을 수십 페이지 제공하고, 그 후 Informatics에서 Mark IV를 한두 페이지만 제공했습니다."롤링스는 한 번에 정해진 작업을 수행하면서 다음과 같은 단일 진술을 제공했습니다.
4GL의 개발은 하드웨어와 운영 체제의 제약이 큰 영향을 미쳤습니다.4GL이 처음 도입되었을 때는 하드웨어와 운영체제가 혼재하여 판매를 확보하기 위해 시스템 고유의 맞춤형 애플리케이션 개발 지원이 필요했습니다.한 예로 Sperry가 개발한 MAPPER 시스템을 들 수 있습니다.이 시스템은 초기 단계까지 거슬러 올라가지만 많은 애플리케이션에서 성공을 거두고 있으며 최신 플랫폼으로 이식되고 있습니다.BIS의 Unisys 제품에는[8] 최신 모델이 포함되어 있습니다.MARK-IV는 현재 VISION으로 알려져 있습니다.Computer Associates에 의해 제공됩니다.
Santa Fe 철도는 4GL, 고속 프로토타이핑 및 사용자 [9]프로그래밍의 초기 사례인 프로젝트에서 MAPPER를 사용하여 시스템을 개발했습니다.프로그래머에게 "철도 운영의 핵심"[10]을 가르치는 것보다 철도 전문가들에게 MAPPER를 사용하도록 가르치는 것이 더 쉽다는 생각이었습니다.
4GL 속성을 가진 초기(및 휴대용) 언어 중 하나는 Gerald C에 의해 개발된 Ramis입니다.수학 소프트웨어 회사인 매스매티카의 코헨.Cohen은 Mathematica를 떠나 Information Builders를 설립하여 FOCUS라는 유사한 보고서 지향 4GL을 만들었습니다.
이후의 4GL 타입은 데이터베이스 시스템과 연계되어 있으며, 시간이 지남에 따라 컴퓨팅이 전반적으로 개선되었기 때문에 기술이나 자원을 사용하는 점에서 이전의 타입과는 크게 다릅니다.
4GL 장면에서 흥미로운 점은 그래픽 인터페이스와 사용자가 수행한 관련 추론이 제대로 이해되지 않는 '언어'를 형성한다는 것입니다.
종류들
4GL에는 다음과 같은 다양한 유형이 있습니다.
- 일반적으로 런타임 프레임워크 및 라이브러리와 함께 실행되는 테이블 기반(코드 없음) 프로그래밍입니다.대신에 코드를 사용하는 것의, 개발자가 메모리 또는 데이터 테이블 조작한 명령어의 미리 정의된 목록에서 수술을 선택함으로써, 그들 논리를 정의합니다.즉, 코딩이 아니라, 그 개발자table-driven 알고리즘 프로그래밍(이 목적으로 사용할 수 있또한 제어 탁자 보)을 사용한다.제4세대 언어 언어의 이 타입의 좋은 예는 파워 빌더.도구의 종류 사업 애플리케이션 개발 주로 구성되기 때문에 그들은 그래픽 사용자 인터페이스 화면과 보고서 편집인과 온 패키지 사업 데이터 조작 및 보고 가능하며로 쓰일 수 있다.그들은 보통 낮은 수준과 DLL은 전형적인 3GL에서 더 많은 hardware/OS 특정 작업을 위할 때 필요하면에 대해 생성된 통합을 제공한다.
- 보고서 생성기 프로그래밍 언어는 데이터 형식과 보고서 생성에 대한 설명을 취하며, 필요한 보고서를 직접 생성하거나 보고서를 생성하기 위한 프로그램을 생성합니다.'RPG'도 참조
- 마찬가지로 양식 생성기는 응용프로그램 시스템 사용자와의 온라인 상호 작용을 관리하거나 이를 위한 프로그램을 생성합니다.
- 보다 야심찬 4GL(4세대 환경이라고도 함)은 CASE 도구의 출력, 화면 및 보고서의 사양, 그리고 일부 추가 처리 로직의 사양으로부터 전체 시스템을 자동으로 생성하려고 시도합니다.
- SAS, SPSS 및 Stata와 같은 데이터 관리 4GL은 통계 분석 및 보고를 위한 데이터 준비 시 데이터 조작, 파일 재구성, 사례 선택 및 데이터 문서화를 위한 정교한 코딩 명령을 제공합니다.
- 이른바 'XTalk' 언어, 1987년 애플의 Hypercard와 함께 처음 개발되었습니다.HyperCard는 SuperCard, Toolbook, LiveCode와 같은 보다 현대적이고 강력한 프로그램의 원조였습니다.
일부 4GL에는 모든 필수 정보를 쉽게 지정할 수 있는 통합 도구가 있습니다.
- James Martin의 데이터 엔지니어링 시스템 개발 방법론은 데이터 흐름도, 엔티티 관계도, 엔티티 라이프 이력도 등의 형태로 시스템 분석 및 설계 결과를 입력할 수 있도록 자동화되었습니다. 여기서 수십만 줄의 코볼이 하룻밤 사이에 생성됩니다.
- 최근에는 Oracle Corporation의 Oracle Designer 및 Oracle Developer Suite 4GL 제품을 통합하여 데이터베이스 정의 및 양식 및 보고서 프로그램을 생성할 수 있었습니다.
저코드 환경
21세기에 4GL 시스템은 단기간에 신속한 애플리케이션 개발 문제를 해결하기 위한 "로코드" 환경 또는 플랫폼으로 부상했습니다.벤더는 대부분의 경우 CRM, 계약 관리, 버그 추적 등의 샘플 시스템을 제공하고 있습니다.이 시스템에서는 프로그래밍을 [11]거의 하지 않고 개발이 이루어집니다.
예
범용/다용도
- 제4차원
- 액셀러레이터(생산성)
- Unified Corporation의 Accell/SQL(4GL).
- Broadcom 2e 이전 Synon 4GL RPG/COBOL 제너레이터
- CA-Telon 4GL 코볼/PLI 제너레이터
- 클라리온
- 클리퍼
- 코그노스 파워하우스 4GL
- 데이터 플렉스
- dBase
- 파일 메이커
- 포커스
- Forte TOOL (트랜잭션 객체 지향 언어)
- 진엑스
- 하버
- HyperCard (개발 및 지원 종료)
- IBM Rational EGL(엔터프라이즈 세대 언어)
- 랩뷰
- 랜사
- 링크
- 라이브 코드
- M파워
- 자연의
- Omnis Studio SDK
- Oracle 응용 프로그램 개발 프레임워크
- OutSystems(PaaS/생산성)
- Jmix/CUBA 플랫폼(생산성/프레임워크)
- 파워빌더
- R: 베이스
- Sheer Power 4GL (Microsoft Windows만)
- SQL Windows/팀 개발자
- 유니페이스
- Unix 쉘
- DataFlex (Microsoft Windows, Web, 모바일)
- Visual Fox Pro (개발 및 지원 종료)
- XBase++
- 조조
- ZIM:X
데이터베이스 쿼리 언어
보고서 생성기
- 링크
- Oracle 보고서
- 프로그레스 4GL 쿼리/결과
- RPG-II
- ZIM:X
파일 또는 데이터베이스에서 데이터를 추출하여 다양한 형식의 리포트를 생성하는 작업은 리포트 생성기 도구를 통해 수행됩니다.
데이터 조작, 분석 및 보고서 언어
- 아브 인티시오
- ABAP
- 감사 명령어 언어
- Clarion 프로그래밍 언어
- 보정
- 범인
- ADS/온라인(및 트랜잭션 처리)
- 이지트리브
- 포커스
- 그래프 토크
- IDL
- IGOR Pro
- 인포믹스-4GL
- JSL
- Judoscript
- 랜사
- M파워
- 랩뷰
- 라이브 코드
- 사마귀
- MAPPER(Unisys/Sperry)가 BIS의 일부가 되었습니다.
- MARK-IV(스털링/정보학) 이제 비전:CA의 빌더
- MATLAB 컴포넌트 시뮬레이션
- 자연의
- 유목민
- 옥타브
- PL/SQL
- 프로그레스 4GL
- R
- 라미스
- S
- 실랍
- SAS
- SPSS
- SQL PL
- SQR
- 스타타
- 시논
- 울프람어
- XBase++
- XQuery
- XSLT
- ZIM:X
소프트웨어 크리에이터
- 4차원 (소프트웨어)
- 라이브 코드
- MATLAB 가이드
- 옴니스 스튜디오
- 오픈로드
- Progress 4GL AppBuilder
- 슈퍼톡
- Visual Data Flex
- 조조
- XUL은 XQuery와 함께 사용할 수 있습니다.
- ZIM:X
수학적 최적화
데이터베이스 중심의 GUI 애플리케이션 개발
저코드/코드 개발[12][13] 플랫폼 없음
스크린 페인트 및 제너레이터
- 오라클 폼
- 프로그레스 4GL ProVision
- SB+/SystemBuilder
- ZIM:X
웹 개발 언어
「 」를 참조해 주세요.
- 제1세대 프로그래밍 언어
- 제2세대 프로그래밍 언어
- 제3세대 프로그래밍 언어
- 제5세대 프로그래밍 언어
- 4세대 프로그래밍 언어 목록
- 도메인 고유의 프로그래밍 언어
- 신속한 응용 프로그램 개발
레퍼런스
- ^ 제35회 하와이 국제 시스템 과학 컨퍼런스 - 소프트웨어 엔지니어링용 1002개 도메인 고유 언어 2011년 5월 16일 Wayback Machine에서 아카이브
- ^ Arie van Deursen; Paul Klint; Joost Visser (1998). "Domain-Specific witness Languages:An Annotated Bibliography". Archived from the original on 2009-02-02. Retrieved 2009-03-15.
- ^ MacDonell, Stephen (November 1993). "Software development, CASE tools and 4GLs—A survey of New Zealand usage. Part 1: 750 New Zealand organisations". hdl:10523/928.
{{cite journal}}
:Cite 저널 요구 사항journal=
(도움말) - ^ "Roger Clarke's Software Generations".
- ^ "Definition of fourth-generation language". PCMAG. Retrieved 7 May 2020.
- ^ 마틴, 제임스프로그래머를 사용하지 않는 애플리케이션 개발.프렌티스 홀, 1981년ISBN 0-13-038943-9.
- ^ "IBM Punch Cards". www.columbia.edu. Archived from the original on 2019-02-16. Retrieved 2019-02-03.
- ^ "Data Mining Software, Data Analysis, and More: Unisys Business Information Server Features". Unisys. 2006-08-21. Archived from the original on 2006-08-21. Retrieved 2019-02-03.
- ^ Louis Schlueter (1988). User-Designed Computing: The Next Generation. [보고서 생성기 및 MAPPER 시스템에 대한 책]
- ^ Barbara Canning McNurlin; Ralph H. Sprague (2004). "Ch. 9". Information Systems Management in Practice (PDF). Pearson/Prentice Hall. ISBN 978-0-13-101139-7.[영구 데드링크]
- ^ Forrest, Conner. "How Salesforce is using low-code orchestration to save 'floundering IoT projects'". ZDNet.
- ^ Marvin, Rob (August 10, 2018). "The Best Low-Code Development Platforms for 2019". PCMAG.
- ^ Sayer, Martin Heller and Peter (6 April 2018). "25 simple tools for building mobile apps fast". InfoWorld. Archived from the original on 18 November 2017. Retrieved 17 November 2017.
- ^ "DronaHQ. Build apps without coding". www.dronahq.com. Archived from the original on 2019-08-09. Retrieved 2019-09-11.
- ^ "K2 - Digital Process Automation". www.k2.com. Archived from the original on 2017-11-21. Retrieved 2017-11-20.
- ^ "Kony. Accelerate digital success". Kony. Archived from the original on 2017-11-24. Retrieved 2017-11-20.
- ^ "WEM Modeler. Build Modern Applications At Incredible Speed". wem.io. Archived from the original on 2021-09-07. Retrieved 2021-09-07.