Co je automatické programování?
Automatické programování v informatice a počítačovém inženýrství se týká výroby počítačového programovacího kódu některým systémem nebo softwarem v reakci na abstraktnější vstup nebo příkazy uživatele. V jednom smyslu automatické programování popisuje jakoukoli situaci, ve které počítač nebo software nahradí příkaz vložený programátorem blokem kódu, který může konkrétně provádět akce popsané v příkazu. Při použití v jiném smyslu může automatické programování popsat cíl vytvoření programovacího jazyka nebo systému, který dokáže intuitivně sestavit dokončenou aplikaci založenou pouze na nejužším směru od programátora. Automatické programování může být použito v některých oblastech počítačového výzkumu k odkazu na proces navrhování systému umělé inteligence (AI), který je schopen buď samostatně produkovat program pro dokončení úkolu, nebo sám upravit svůj vlastní kód, aby se zvýšila funkčnost.
Definice automatického programování je poněkud vágní. Původně byl používán v prvních letech počítačového programování k popisu překladu abstraktních instrukcí podobných montážnímu jazyku do rozšířeného strojového kódu. Tomu se říkalo automatické programování, protože kompilátor automaticky nahradil jediný lidsky čitelný příkaz desítkami nebo více instrukcemi strojového kódu, v podstatě automaticky psal program primitivním způsobem. Stejné akce jsou stále prováděny překladači jazyků ve většině případů, bez ohledu na použitý překrývající se programovací jazyk.
Dalším použitím pojmu „automatické programování“ je popis automatizovaného generování kódu. To je situace, kdy lze integrované vizuální prostředí (IDE) nebo jiný nástroj použít vizuálně nebo velmi snadným způsobem k určení toho, jak by koncový uživatel viděl program. Jakmile je požadovaný výsledek vytvořen, může software nebo IDE automaticky vytvořit funkční zdrojový kód pro dosažení výsledku bez dalšího vstupu od programátora.
V některých případech se automatické programování týká také studia toho, jak implementovat jazyky na tak vysoké úrovni, že zdrojový kód vypadá jako přirozený jazyk. Programovací jazyk, jako je tento, by pak automaticky vytvořil aplikaci založenou na širokém vstupu programátora. Bez ohledu na to, jak automatický se jazyk stane, je však třeba poznamenat, že programátor v určitém okamžiku potřebuje ručně upravit kód pro konkrétní funkce pomocí samotného programovacího jazyka.
V oblasti umělé inteligence je prováděn výzkum zaměřený na vývoj systému, který může automaticky programovat sám, aby přidal funkce, které původně nebyl dán. Rozšiřuje se také na AI, které jsou schopny psát nezávislý software, který může vyřešit konkrétní problém. Jednou z aplikací by bylo vytvoření programovacího jazyka, který by mohl pomocí AI generovat rychlé prototypy programů.