Mis on andmetöötluses sisenemispunkt?

Arvutites on sisenemispunkt programmi, mooduli või funktsiooni punkt, kust kood algab; täpsemalt mäluaadress, kust see algab. Programmis on see esimene käivitatav koodimoodul või isegi esimene koodirida. Lineaarses programmis, nagu BASIC või COBOL, on sisestuspunkt sõna otseses mõttes esimene koodirida. Seejärel järgneb kood järjestikku, kuni sooritatakse mingi hüpe või kõne. Modulaarses programmeerimises, nagu kõik C-programmeerimiskeele variandid, on sisenemispunktiks algusmoodul. C-s on see funktsioon “Main()”.

Vanemates programmides ja operatsioonisüsteemides võib programmil olla mitu sisestuspunkti, olenevalt käivitatavast funktsioonist või süsteemist. Enamikus kaasaegsetes operatsioonisüsteemides, sealhulgas Windows® ja Unix, on programmid kirjutatud keeltes, mis toetavad ühte sisenemispunkti. Isegi tänapäevase andmetöötluse algusaegadel võivad sellised keeled nagu BASIC, kuigi neil on programmi üks sisenemispunkt, toetada “pikuhüppeid”, kus programm võib valimatult “hüppada” ühest moodulist teise mooduli sisenemispunkti. See julgustas nn spagetikoodi, mida oli raske säilitada või muuta.

Sisendpunkt ei pruugi isegi viidata programmi sisenemispunktile, vaid võib olla dünaamilise lingi teegi (DLL) sisenemispunkt, mis on omamoodi miniprogrammid, mida jagavad teised programmid. Üks näide on DLL, mis juhib klaviatuuri sisendit. Olenemata programmi, mooduli või funktsiooni tüübist on sisenemispunkt see, kus töödeldakse selles kooditükis olevaid olendeid. Mis tahes keele mõistmise või mis tahes programmi muutmise ja toetamise võti seisneb mõistmises, kuidas sisenemispunkt selles konkreetses programmis või operatsioonisüsteemis tuvastatakse.

Sisendpunktide kontseptsioon võeti kasutusele siis, kui arvutiprogrammeerimine jättis algusaegade täiesti lineaarsed meetodid. Nendel aegadel alustas arvutiprogramm koodi esimesest reast ja jätkas üks rida korraga kuni protsessi lõpuni. Varsti lõid programmeerimiskonstruktsioonid, nagu silmus, tingimuslik hargnemine, rekursioon ja teised programmid, mis olid funktsionaalselt tõhusamad, kuid töötlemine põrkas koodi sees kõikjale. Nende programmide olemus tähendab, et enne protsessi tegelikku algust võib olla palju koodi ridu või jaotisi. Sel põhjusel loodi ja tuvastati sisenemispunkt.

C-s sai sellest main() funktsioon. Olenemata sellest, kus see funktsioon koodis oli, algas töötlemine just sealt. Teistes keeltes ei tuvastata sisenemispunkte mitte niivõrd selle järgi, kus nad asuvad, vaid selle järgi, kus neid ei ole. Programmi algus võib sisaldada muutujate deklaratsioonide ja alamrutiinide sektsioone. Nendele aladele või funktsioonidele järgnev esimene koodirida saab vaikimisi sisestuspunktiks.