A procedurális programozás egy imperatív nyelven történő programozás , amelyben a szekvenciálisan végrehajtott utasítások alprogramokká , azaz nagyobb integrált kódegységekké állíthatók össze , magának a nyelvnek a mechanizmusait felhasználva [1] .
Az eljárási programozás a Von Neumann által az 1940-es években javasolt hagyományos számítógép - architektúrát tükrözi . A Turing-gép az eljárási programozás elméleti modelljeként szolgál . A program végrehajtása az operátorok szekvenciális végrehajtására redukálódik, hogy a memória kezdeti állapotát, azaz a kezdeti adatok értékeit a végső állapotba, azaz az eredményekké konvertálják. A programozó szemszögéből tehát van program és memória, az előbbi szekvenciálisan frissíti az utóbbi tartalmát.
Az eljárási programozási nyelv lehetővé teszi a programozó számára, hogy meghatározza a probléma megoldásának minden lépését. Az ilyen programozási nyelvek sajátossága, hogy a feladatokat lépésekre osztják, és lépésről lépésre oldják meg. Egy eljárási nyelv segítségével a programozó nyelvi konstrukciókat definiál az algoritmikus lépések sorozatának végrehajtásához. A procedurális programozás fejlődésének fontos lépése volt a strukturális paradigmára való áttérés , amely abból adódott, hogy felfedezték a Turing-teljes programok feltétel nélküli ugrásoperátor nélküli létrehozásának lehetőségét ( Boehm-Jacopini tétel ).
A legtöbb korai imperatív programozási nyelv, köztük a Fortran , Cobol , Algol , BASIC , C , PL/1 , Pascal , Forth procedurális; a későbbi imperatív nyelvek, különösen azok, amelyek az objektumparadigmát ( Smalltalk , C++ , Java ) valósítják meg, általában nem minősülnek procedurálisnak, mivel a végrehajtási blokkok szubrutinokba szervezésének elve az absztrakció más szintjén valósul meg bennük. A procedurális megközelítés bizonyos újjáéledése számos szkriptnyelvben ( Tcl , Perl , Lua , shell nyelvek ) figyelhető meg, azonban ezek többsége többparadigmás – nem procedurális stílusban is tudnak programokat készíteni. (objektum-orientált, funkcionális ).