Gertaeretara zuzendutako programazioa programazio paradigma bat da non bai egitura eta exekuzioa sisteman gertatzen diren gertaeretara zehaztuta dagoen, erabiltzaileak zehaztutakoak edo hauek eraginduak.
Gertaeretara zuzendutako programazioa ulertzeko, ez denarekin kontrajarri dezakegu: programazio sekuentzialean (edo egituratuan) programatzaileak programaren fluxua zehazten duen bitartean, gertaeretara zuzendutako programazioan erabiltzaileak zuzenduko du programaren fluxua. Programazio sekuentzialan kanpoko agente batek esku-hartu dezakeen arren, esku-hartze horiek programatzaileak erabaki duenean gertatuko dira, eta ez edozein momentuan gertaeretara zuzendutako programazioan bezala.
Gertaeretara zuzendutako programa baten egileak programak erabiliko dituen gertaerak definitu behar ditu eta gertaera hauek gertatzean burutuko diren ekintzak, gertaera administratzaile bezala ezagutzen dena. Onartutako gertaerak erabilitako programazio lengoaiaren, sistema eragilearen edo programatzaileak eratutako gertaeren arabera zehaztuko dira.
Gertaeretara zuzendutako programazioan, programaren exekuzioa hastean hasieraketak eta kodea abiarazi egingo dira eta ondoren programa blokeatuta geratuko da gertaeraren bat gauzatu arte. Espero den gertaera bat gertatzen denean, programa dagokion gertaera kudeatzailearen kodea exekutatuko du. Adibidez, gertaera pelikula erreproduktore baten play botoiari sakatzea bada, gertaera kudeatzaile kodea exekutatuko da, pelikula pantailan ikustea eragingo duena.
Adibide argia Lexiko edo Visual Basic programazio sistemetan daukagu, non programaren elementu bakoitzari (objektua, kontrolak, etab) gertaera multzo bat esleituko zaion elementu horrek sortuko dituena, saguaren botoia sakatzea adibidez.
Gertaeretara zuzendutako programazioa erabiltzaile interfaze deritzogunaren oinarria da, baina software konponenteen arteko interfazeak edo nukleoaren moduluak garatzeko ere balio du.
Modelo klasikoaren kontrajarriz, gertaeretara zuzendutako programazioak erabiltzailearekin elkar eragin diezaioke exekuzioaren edozein momentuan. Hau lortzeko egitura hau erabiltzen duten programek kanpo begizta bat daukate gertaerak hartzeko. Normalean, begizta hau programatzailearentzat ezkutua dago, baina IDE batzuetan beharrezkoa izango da begizta hau eraikitzea.
Gertaeretara bideratutako programa baten adibidea:
While (true){ Switch (event){ case mousse_button_down: case mouse_click: case keypressed: case Else: } }