Co to jest programowanie automatyczne?
Automatyczne programowanie w informatyce i inżynierii komputerowej odnosi się do wytwarzania kodu programowania komputerowego przez jakiś system lub oprogramowanie w odpowiedzi na bardziej abstrakcyjne dane wejściowe lub polecenia. W pewnym sensie programowanie automatyczne opisuje każdą sytuację, w której komputer lub oprogramowanie zastąpi instrukcję wprowadzoną przez programistę blokiem kodu, który może konkretnie wykonywać czynności opisane w instrukcji. W innym znaczeniu automatyczne programowanie może opisać cel stworzenia języka programowania lub systemu, który może intuicyjnie składać kompletną aplikację na podstawie tylko najmniejszego kierunku od programisty. Automatyczne programowanie można zastosować w niektórych dziedzinach badań komputerowych w odniesieniu do procesu projektowania systemu sztucznej inteligencji (AI) zdolnego albo do samodzielnego wytworzenia programu do wykonania zadania, albo do samodzielnej modyfikacji własnego kodu w celu zwiększenia funkcjonalności.
Definicja programowania automatycznego jest nieco niejasna. Pierwotnie był używany w pierwszych latach programowania komputerowego do opisu tłumaczenia abstrakcyjnych instrukcji w języku asemblera na rozszerzony kod maszynowy. Nazywało się to programowaniem automatycznym, ponieważ kompilator automatycznie zamieniałby jedną instrukcję czytelną dla człowieka na dziesiątki lub więcej instrukcji kodu maszynowego, zasadniczo automatycznie pisząc program w prymitywny sposób. Te same działania są nadal wykonywane przez kompilatory językowe w większości przypadków, niezależnie od zastosowanego nakładającego się języka programowania.
Innym zastosowaniem terminu „programowanie automatyczne” jest opisanie automatycznego generowania kodu. Dzieje się tak, gdy zintegrowane środowisko programistyczne (IDE) lub inne narzędzie może być użyte wizualnie lub w bardzo prosty sposób, aby określić, jak użytkownik końcowy powinien zobaczyć program. Po utworzeniu pożądanego wyniku oprogramowanie lub IDE może automatycznie wygenerować funkcjonalny kod źródłowy, aby uzyskać wynik bez żadnych dalszych działań ze strony programisty.
W niektórych przypadkach programowanie automatyczne odnosi się również do nauki o implementacji języków na tak wysokim poziomie, że kod źródłowy wygląda jak język naturalny. Język programowania taki jak ten automatycznie tworzyłby aplikację w oparciu o szeroki wkład programisty. Jednak bez względu na to, jak automatyczny staje się język, należy zauważyć, że programiści muszą w pewnym momencie ręcznie zmodyfikować kod dla określonej funkcjonalności za pomocą samego języka programowania.
W dziedzinie sztucznej inteligencji prowadzone są badania nad opracowaniem systemu, który może automatycznie programować się w celu dodania możliwości, których pierwotnie nie otrzymał. Dotyczy to również sztucznej inteligencji zdolnej do pisania niezależnego oprogramowania, które może rozwiązać konkretny problem. Jedną z aplikacji byłoby stworzenie języka programowania, który mógłby wykorzystywać AI do generowania szybkich prototypów programów.