Из Википедии, бесплатной энциклопедии
  (Перенаправлено из генерации исходного кода )
Перейти к навигации Перейти к поиску

В информатике термин автоматическое программирование [1] обозначает тип компьютерного программирования, в котором некоторый механизм генерирует компьютерную программу, позволяющую программистам писать код на более высоком уровне абстракции.

Точное определение автоматического программирования практически не согласовано, в основном из-за того, что его значение со временем изменилось. Дэвид Парнас , прослеживая историю «автоматического программирования» в опубликованных исследованиях, отметил, что в 1940-х годах в нем описывалась автоматизация ручного процесса перфорации бумажной ленты . Позже речь шла о переводе языков программирования высокого уровня, таких как Fortran и ALGOL . Фактически, одна из самых ранних программ, идентифицируемых как компилятор, называлась Autocode . Парнас пришел к выводу, что «автоматическое программирование всегда было эвфемизмом.для программирования на языке более высокого уровня, чем тогда был доступен программисту » [2]

Синтез программ - это один из видов автоматического программирования, при котором процедура создается с нуля на основе математических требований.

Происхождение [ править ]

Милдред Косс , один из первых программистов UNIVAC , объясняет: «Написание машинного кода включало несколько утомительных шагов - разбиение процесса на дискретные инструкции, назначение определенных участков памяти для всех команд и управление буферами ввода-вывода. После выполнения этих шагов для реализации математических процедур, библиотеки подпрограмм и программ сортировки, наша задача заключалась в том, чтобы взглянуть на более крупный процесс программирования. Нам нужно было понять, как мы можем повторно использовать проверенный код и получить машинную помощь в программировании. Когда мы программировали, мы исследовали процесс и пытался придумать способы абстрагироваться от этих шагов, чтобы включить их в язык более высокого уровня. Это привело к разработке интерпретаторов, ассемблеров, компиляторов и генераторов - программ, предназначенных для работы с другими программами или их создания, т. е.автоматическое программирование » [3]

Генеративное программирование [ править ]

Генеративное программирование и связанный с ним термин метапрограммирование [4] - это концепции, согласно которым программы могут быть написаны «для автоматизированного производства компонентов программного обеспечения» [5], так же как автоматизация улучшила «производство традиционных товаров, таких как одежда, автомобили, химикаты и т. Д. и электроника ". [6] [7]

Цель - повысить продуктивность программиста . [8] Это часто связано с темами повторного использования кода, такими как разработка программного обеспечения на основе компонентов .

Генерация исходного кода [ править ]

Генерация исходного кода является процесс генерации исходного кода , основанного на описании задачи [9] или онтологической модели , такие как шаблон и осуществляется с помощью инструмента программирования , таких как процессор шаблона или интегрированной среды разработки (IDE). Эти инструменты позволяют генерировать исходный код любым из различных способов.

Современные языки программирования хорошо поддерживаются такими инструментами, как Json4Swift ( Swift ) и Json2Kotlin ( Kotlin ).

Программы, которые могут генерировать код COBOL, включают:

  • серии DYL250 / DYL260 / DYL270 / DYL280 [10]
  • SB-5 корпорации Business Controls
  • Пакет генератора прикладных программ PMM2170 от Peat Marwick Mitchell

Эти генераторы приложений поддерживали вставки и переопределения COBOL.

Макро процессор, такие как C препроцессор , который заменяет шаблоны в исходном коде в соответствии с относительно простых правил, является простой формой исходного кода генератора. [ необходима цитата ] Также существуют инструменты генерации исходного кода. [11] [12]

Приложения с низким кодом [ править ]

Платформа разработки низкого кода (LCDP) это программное обеспечение , которое обеспечивает среду программистов использовать для создания прикладного программного обеспечения с помощью графических пользовательских интерфейсов и конфигураций вместо традиционного компьютерного программирования .

См. Также [ править ]

  • Автоматическое исправление ошибок
  • Автоматизированное машинное обучение
  • Сравнение инструментов генерации кода
  • Функционально-ориентированное программирование
  • Языко-ориентированное программирование
  • Язык моделирования
  • Трансформация программы
  • Семантический перевод
  • Преобразование на основе словарного запаса
  • Язык программирования четвертого поколения
  • Платформы разработки low-code

Заметки [ править ]

  1. ^ Рикардо Aler Мур, " Автоматическая Индуктивный Программирование в архив 2016-03-04 в Wayback Machine ", ICML 2006 Учебное пособие . Июнь 2006 г.
  2. ^ DL Парнас. « Программные аспекты систем стратегической защиты» . Американский ученый . Ноябрь 1985 г.
  3. ^ Чун, Венди. «О программном обеспечении или постоянстве визуальных знаний». Серая комната 18. Бостон: 2004, стр. 30.
  4. ^ «О генеративном программировании» . Генеративное программирование, как подобласть метапрограммирования, описывает практику написания программ, которые генерируют другие программы как часть их выполнения.
  5. ^ П. Cointe (2005). «К генеративному программированию». Нетрадиционные парадигмы программирования . Конспект лекций по информатике. 3566 . С. 315–325. DOI : 10.1007 / 11527800_24 . ISBN 978-3-540-27884-9. Генеративное программирование (GP) - это попытка производить компоненты программного обеспечения автоматизированным способом путем разработки программ, которые синтезируют другие программы.
  6. ^ "Генеративное программирование: концепции и опыт (GPCE)" .
  7. ^ Конференция SIGPLAN по этой теме запланирована на ноябрь 2018 года. Ранее / 1970-х годов попытки в этой области включали Yacc и связанные с ним программы Lex.
  8. ^ Джеймс Уилкокс, « Слишком много платят за разработку пользовательских приложений », март 2011 г.
  9. ^ «Генератор приложений» . PCmag.com. Программное обеспечение, которое генерирует прикладные программы на основе описания проблемы, а не путем традиционного программирования. Он находится на более высоком уровне и проще в использовании, чем язык программирования высокого уровня, такой как ...
  10. ^ "Синтаксис команд DYL-280" (PDF) . Архивировано из оригинального (PDF) 30.07.2018 . Проверено 3 сентября 2018 .
  11. ^ Noaje, Габриэль, Кристоф Jaillet и Микаэль Krajecki. « Преобразователь исходного кода в исходный: OpenMP C в CUDA ». Высокопроизводительные вычисления и коммуникации (HPCC), 13-я Международная конференция IEEE 2011 г. IEEE, 2011.
  12. Куинлан, Дэн и Чуньхуа Ляо. « Инфраструктура компилятора ROSE от исходного текста к исходному ». Пользователи Cetus и семинар по инфраструктуре компиляторов, совместно с PACT. Vol. 2011. 2011.

Ссылки [ править ]

  • Генеративное программирование: методы, инструменты и приложения Кшиштофа Чарнецкого и Ульриха В. Эйзенекера, Addison Wesley, 2000.

Внешние ссылки [ править ]

  • Генерация кода для чайников