Введение
Тип компьютерного программирования
В информатике автоматическое программирование — это вид компьютерного программирования, в котором некий механизм генерирует компьютерную программу, позволяя программистам писать код на более высоком уровне абстракции. Четкого определения автоматического программирования так и не было достигнуто, в основном из-за того, что его значение менялось с течением времени. Дэвид Парнас, прослеживая историю термина "автоматическое программирование" в опубликованных исследованиях, отметил, что в 1940-х годах он описывал автоматизацию ручного процесса перфорации бумажной ленты. Позже он стал относиться к переводу языков программирования высокого уровня, таких как Fortran и ALGOL. Фактически, одна из самых ранних программ, которую можно идентифицировать как компилятор, называлась Autocode. Парнас заключил, что "автоматическое программирование всегда было эвфемизмом для программирования на языке более высокого уровня, чем тот, который был доступен программисту в то время". Синтез программ — это один из видов автоматического программирования, при котором процедура создается с нуля на основе математических требований.
Происхождение
Милдред Косс, один из первых программистов UNIVAC, объясняет: "Написание машинного кода включало несколько кропотливых этапов — разбивку процесса на отдельные инструкции, присвоение конкретных адресов памяти всем командам и управление буферами ввода-вывода. После выполнения этих этапов для реализации математических подпрограмм, библиотеки подпрограмм и программ сортировки, нашей задачей стало изучение более широкого процесса программирования. Нам нужно было понять, как повторно использовать проверенный код и заставить машину помогать в программировании. По мере программирования мы анализировали процесс и пытались найти способы абстрагировать эти этапы, чтобы включить их в язык более высокого уровня. Это привело к разработке интерпретаторов, ассемблеров, компиляторов и генераторов — программ, предназначенных для обработки или создания других программ, то есть автоматического программирования."
Генеративное программирование
Генеративное программирование и связанный с ним термин метапрограммирование – это концепции, позволяющие создавать программы, которые "автоматически генерируют программные компоненты", подобно тому, как автоматизация улучшила "производство традиционных товаров, таких как одежда, автомобили, химические вещества и электроника". Цель – повышение производительности программистов. Оно часто связано с вопросами повторного использования кода, например, с компонентно-ориентированной разработкой программного обеспечения.
Приложения с низким уровнем кода
Платформа разработки с низким кодом (LCDP) — это программное обеспечение, предоставляющее среду для создания прикладного программного обеспечения программистами посредством графических пользовательских интерфейсов и настройки, а не традиционного программирования.