자동 프로그래밍

Automatic programming

컴퓨터 과학에서 자동 프로그래밍이라는[1] 용어는 어떤 메커니즘이 인간 프로그래머가 더 높은 추상화 수준에서 코드를 작성할 수 있도록 컴퓨터 프로그램을 생성하는 컴퓨터 프로그래밍의 한 종류를 식별합니다.

자동 프로그래밍의 정확한 정의에 대해서는 거의 합의가 이루어지지 않았는데, 그 이유는 주로 시간이 지남에 따라 그 의미가 변했기 때문이다.출판된 연구에서 "자동 프로그래밍"의 역사를 추적한 David Parnas는 1940년대에 종이 테이프를 뚫는 수동 프로세스의 자동화를 설명했다고 언급했다.나중에 그것은 Fortran과 ALGOL과 같은 고급 프로그래밍 언어의 번역을 참조했다. 사실, 컴파일러로 식별될 수 있는 최초의 프로그램 중 하나는 Autocode였다.파르나스는 "자동 프로그래밍은 [2]그 당시 프로그래머가 사용할 수 있었던 것보다 더 높은 수준의 언어로 프로그래밍하는 완곡한 표현이었다"고 결론지었다.

프로그램 합성은 수학적 요건에 따라 프로시저가 처음부터 생성되는 자동 프로그래밍의 한 종류입니다.

기원.

초기 UNIVAC 프로그래머인 Mildred Koss는 다음과 같이 설명합니다.머신 코드 작성에는 프로세스를 개별 명령으로 분할하고, 모든 명령에 특정 메모리 위치를 할당하고, I/O 버퍼를 관리하는 등 여러 가지 절차가 필요했습니다.수학 루틴, 서브 루틴 라이브러리 및 정렬 프로그램을 구현하기 위해 이러한 단계를 수행한 후, 우리의 과제는 더 큰 프로그래밍 과정을 보는 것이었습니다.테스트된 코드를 어떻게 재사용할 수 있는지 이해하고 프로그래밍을 기계에서 지원해야 했습니다.프로그래밍을 하면서 프로세스를 검토하고 이러한 단계를 추상화하여 고급 언어로 통합할 수 있는 방법을 생각해 보았습니다.이를 통해 인터프리터, 어셈블러, 컴파일러 및 제너레이터(다른 프로그램, 즉 자동 [3]프로그래밍에서 작동하거나 제작하도록 설계된 프로그램)가 개발되었습니다."

생성 프로그래밍

생성 프로그래밍 및 관련 용어 메타[4] 프로그래밍은 자동화가 "의류, 자동차, 화학, 전자제품 [6][7]등의 전통적인 상품 생산"을 향상시킨 것처럼 "자동화된 [5]방식으로 소프트웨어 부품을 제조하기 위한" 프로그램을 작성할 수 있는 개념이다.

목표는 프로그래머의 [8]생산성을 향상시키는 것입니다.컴포넌트 기반 소프트웨어 엔지니어링과 같은 코드 재사용 주제와 관련된 경우가 많습니다.

소스 코드 생성

소스 코드 생성은 문제의[9] 기술 또는 템플릿과 같은 온톨로지 모델을 기반으로 소스 코드를 생성하는 프로세스이며 템플릿 프로세서 또는 통합 개발 환경(IDE)과 같은 프로그래밍 도구를 사용하여 수행됩니다.이러한 도구를 사용하면 다양한 방법으로 소스 코드를 생성할 수 있습니다.

현대의 프로그래밍 언어는 Json4Swift(Swift)나 Json2Kotlin(Kotlin) 등의 툴로 충분히 지원됩니다.

COBOL 코드를 생성할 수 있는 프로그램은 다음과 같습니다.

이러한 애플리케이션 생성기는 COBOL 삽입 및 오버라이드를 지원했습니다.

비교적 단순한 규칙에 따라 소스 코드의 패턴을 대체하는 C 프리프로세서 등의 매크로 프로세서는 소스 코드 생성기의 [citation needed]단순한 형태입니다.소스 간 코드 생성 도구도 존재합니다.[11][12]

저코드 애플리케이션

Low-Code Development Platform(LCDP; 저코드 개발 플랫폼)은 기존의 컴퓨터 프로그래밍 대신 그래픽 사용자 인터페이스와 구성을 통해 프로그래머애플리케이션 소프트웨어를 만드는 데 사용하는 환경을 제공하는 소프트웨어입니다.

「 」를 참조해 주세요.

메모들

  1. ^ Ricardo Aler Mur, "Automatic Inductive Programming Archived 2016-03-04 at the Wayback Machine", ICML 2006 튜토리얼2006년 6월
  2. ^ D. L. 파르나스"전략적 방어 시스템의 소프트웨어 측면"미국의 과학자.1985년 11월
  3. ^ 전, 웬디 "소프트웨어, 아니면 시각적 지식의 지속성"그레이 룸 18보스턴: 2004, 30페이지
  4. ^ "About Generative Programming". Generative programming, as a subdomain of meta-programming, describes the practice of writing programs that generate other programs as part of their execution.
  5. ^ P. Cointe (2005). "Towards Generative Programming". Unconventional Programming Paradigms. Lecture Notes in Computer Science. Vol. 3566. pp. 315–325. doi:10.1007/11527800_24. ISBN 978-3-540-27884-9. Generative Programming (GP) is an attempt to manufacture software components in an automated way by developing programs that synthesize other programs.
  6. ^ "Generative Programming: Concepts and Experiences (GPCE)".
  7. ^ 이 주제에 관한 SIGPLAN 컨퍼런스는 2018년 11월로 예정되어 있습니다.1970년대 초반에는 이 분야에서 Yacc와 관련 Lex 프로그램을 시도했습니다.
  8. ^ James Wilcox, "커스텀 애플리케이션 개발을 위해 너무 많은 비용을 지불한다", 2011년 3월
  9. ^ "Application generator". PCmag.com. Software that generates application programs from descriptions of the problem rather than by traditional programming. It is at a higher level and easier to use than a high-level programming language such as ...
  10. ^ "DYL-280 Command Syntax" (PDF). Archived from the original (PDF) on 2018-07-30. Retrieved 2018-09-03.
  11. ^ 노아제, 가브리엘, 크리스토퍼 가일렛, 마이클 크라제키."소스소스 코드 변환기: CUDA에 대한 OpenMP C to CUDA 。하이 퍼포먼스 컴퓨팅 및 커뮤니케이션(HPCC), 2011년 IEEE 13회 국제회의 개최.IEEE, 2011.
  12. ^ 퀸랜, 댄, 그리고 랴오춘화."ROSE 소스소스 컴파일러 인프라스트럭처"PACT. Vol. 2011. 2011과 함께 Cetus 사용자 및 컴파일러 인프라 워크숍.

레퍼런스

  • 생성 프로그래밍: Krzystof Czarnecki와 Ulrich W. Eisenecker, Adison Wesley, 2000년.

외부 링크