W komputerach punkt wejścia to punkt w programie, module lub funkcji, w którym zaczyna się kod; konkretnie adres pamięci, w którym się zaczyna. W programie jest to pierwszy moduł kodu, a nawet pierwszy wiersz kodu, który jest wykonywany. W programie liniowym, takim jak BASIC lub COBOL, punktem wejścia jest dosłownie pierwszy wiersz kodu. Następnie kod następuje sekwencyjnie, aż do wykonania jakiegoś skoku lub wywołania. W programowaniu modułowym, takim jak wszystkie warianty języka programowania C, punktem wejścia jest moduł początkowy. W C jest to funkcja „Main()”.
W starszych programach i systemach operacyjnych program może mieć wiele punktów wejścia, w zależności od wykonywanej funkcji lub systemu. W większości nowoczesnych systemów operacyjnych, w tym Windows® i Unix, programy są napisane w językach obsługujących pojedynczy punkt wejścia. Nawet w początkach nowoczesnego informatyki języki takie jak BASIC, mimo że posiadają jeden punkt wejścia do programu, mogą obsługiwać „skoki w dal”, w których program może „przeskakiwać” z jednego modułu do punktu wejścia innego modułu bez rozróżnienia. Zachęcało to do tego, co nazywano „kodem spaghetti”, który był trudny do utrzymania lub modyfikacji.
Punkt wejścia może nawet nie odnosić się do punktu wejścia programu, ale może być punktem wejścia biblioteki dołączanej dynamicznie (DLL), która jest rodzajem miniprogramów współużytkowanych przez inne programy. Jednym z przykładów jest biblioteka DLL, która kontroluje wprowadzanie danych z klawiatury. Bez względu na rodzaj programu, modułu lub funkcji, punkt wejścia jest pojedynczym punktem, w którym przetwarza się istoty w tym kawałku kodu. Kluczem do zrozumienia dowolnego języka lub modyfikowania i wspierania dowolnego programu jest zrozumienie, w jaki sposób punkt wejścia jest identyfikowany w tym konkretnym programie lub systemie operacyjnym.
Koncepcja punktów wejścia została wdrożona, gdy programowanie komputerowe opuściło całkowicie liniowe metody z pierwszych dni. W tamtych czasach program komputerowy zaczynał od pierwszego wiersza kodu i przechodził jeden wiersz po wierszu do końca procesu. Wkrótce konstrukcje programistyczne, takie jak pętle, rozgałęzienia warunkowe, rekurencja i inne, stworzyły programy, które były funkcjonalnie bardziej wydajne, ale przetwarzanie odbijało się w całym kodzie. Charakter tych programów oznacza, że przed punktem, w którym faktycznie rozpoczyna się przetwarzanie, może być wiele wierszy lub sekcji kodu. Z tego powodu został utworzony i zidentyfikowany punkt wejścia.
W C stało się to funkcją main(). Niezależnie od tego, gdzie ta funkcja istniała w kodzie, to tam rozpoczęło się przetwarzanie. W innych językach punkty wejścia są identyfikowane nie tyle na podstawie tego, gdzie się znajdują, ile na podstawie tego, gdzie ich nie ma. Początek programu może zawierać sekcje deklaracji zmiennych i podprogramów. Pierwszy wiersz kodu następujący po tych obszarach lub funkcjach domyślnie staje się punktem wejścia.