Język Pascal jest językiem strukturalnym. Oznacza to. że programy napisane w tym języku mogą zostać podzielone na odrębne jednostki kodu zwane funkcjami lub procedurami. Dzięki nim struktura programu staje się przejrzysta i łatwiejsza do zrozumienia. Programowanie modularne jest rozwinięciem tego pomysłu. Pozwala ono na zgrupowanie logicznie powiązanych podprogramów wraz z innymi elementami, takimi jak zmienne, typy danych i stałe, w osobnych plikach z rozszerzeniem „pas”, zwanych modułami1. Pliki zawierające kod źródłowy programu i modułów nazywamy jednostkami translacji. Przed użyciem w programie moduł musi zostać skompilowany. W wyniku tego procesu powstaje pliku o rozszerzeniu „tpu"2. Moduły są nie tylko zbiorem gotowych elementów' programu. Pozwalają również określić, które z tych elementów zostaną udostępnione osobie korzystającej z nich. a które pozostaną ich wewnętrzną częścią. Elementy modułu dostępne „na zewnątrz" stanowią jego interfejs3, czyli pośredników' między modułem a programem, który z niego korzysta. Elementy dostępne jedynie „wewnątrz" moduł stanowią jego implementację, czyli mechanizm działania. Na moduł można spojrzeć z punktu widzenia dwóch osób: programisty użytkującego moduł, zwanego dalej użytkownikiem modułu i programisty tworzącego moduł zwanym dalej twórcą modułu4. Pierwszy programista, aby skorzystać z modułu musi jedynie wiedzieć jak wywołać funkcje i procedury zgromadzone w module, lub jakie są nazwy stałych, typów i zmiennych, z tego modułu. Drugi z nich. może chcieć zachować możliwość modyfikowania sposobu działania umieszczonych w module podprogramów i dodatkowo nie chcieć, aby po wprowadzeniu zmian wr module użytkownik musiał wprowadzać zmiany w swoim programie. Rozwiązaniem tego problemu jest zawarcie niepisanej umowy między twórcą i użytkownikiem modułu. Twórca modułu umieszcza w jego interfejsie, czyli w części dostępnej publicznie te elementy, które nie ulegną zmianie w przyszłych jego wersjach, natomiast w części prywatnej, które mogą ulec zmianie5.
2
W innych Językach programowania moduły są określane mianem bibliotek. W Turbo Pascalu słowo „biblioteka" ma inne znaczenie.
W przypadku Turbo Pascala. Free Pascal stosuje rozszerzenie „ppu".
Słowo „interfejs" jest wieloznaczne i w zależności od kontekstu może oznaczać różne rzeczy. Wywodzi się ono od angielskiego słowo „interface". które nie da się wprost przetłumaczyć na Język polski.
W niektórych przypadkach Jest to Jedna i ta sama osoba.
Dobrą ilustracją takiego postępowania jest przykład producenta samochodu I kierowcy, który jest jego użytkownikiem. Interfejsem samochodu jest jego układ kierowniczy, mechanizm działania obejmuje cały system napędowy. Jeśli kierowca, który jeździł samochodem określonej marki zdecyduje się na zakup nowego modelu o. powiedzmy, większym silniku, to może być pewien, że tym samochodem będzie można kierować w ten sam sposób co poprzednim, bo producent zachowa poprzedni rozkład elementów układu kierowniczego.