Can you summarize the following document?
        
  取代傳統上一次等待一個完整的指令然後再做執行的方式,事件驅動程式模型下的系統,基本上的架構是預先設計一個事件迴圈所形成的程式,這個事件迴圈程式不斷地檢查目前要處理的資訊,根據要處理的資訊執行一個觸發函式進行必要的處理。其中這個外部資訊可能來自一個目錄夾中的檔案,可能來自鍵盤或滑鼠的動作,或者是一個時間事件。  對一個事件驅動(event driven)系統進行程式設計,因此可以視為改寫系統預設觸發函式的行為,來符合自己需要的一種動作。輸入的事件可以放進事件迴圈或者是經由已經註冊的中斷處理器來與硬體事件互動;而許多的軟體系統使用了混和這兩種技術的處理。預先設計好的演算法確定了一件事,那就是當他們被需要的時候,就會在適當的時機被觸發。也因此提供了一個模擬中斷驅動環境(interrupt driven environment)的軟體抽象架構。事件驅動程式設計基本上包含了許多小程式片段,這些小程式片段被稱為事件處理器並且被用來回應外部的事件與分發事件。通常尚未被事件處理器處理的事件,都會被系統放在一個稱為事件佇列的資料結構中,等待被處理。  許多情況下,事件處理器可以自己觸發事件,因此也可能形成一個事件串。 事件驅動程式設計的著重於彈性以及非同步化上面,並且企圖儘可能的modeless。 圖形使用者介面這類程式就是典型的事件驅動設計方式。  計算機作業系統是事件驅動程式的典型範例。在作業系統的最底層,中斷處理器的動作就像是硬體事件的直接處理器,搭配著 CPU 執行分配事件規則動作。對軟體處理程式而言,基本上作業系統可視為一個事件分配器,傳送資料和軟體中斷給使用者自己寫的軟體處理程式。

  下面是兩個數相加的範例,分別用批次版本與事件驅動版本來撰寫
事件驅動程式設計(英語:Event-driven programming)是一種計算機程式設計模型。這種模型的程式執行流程是由使用者的動作(如滑鼠的按鍵,鍵盤的按鍵動作)或者是由其他程式的訊息來決定的。相對於批次程式設計(batch programming)而言,程式執行的流程是由程式設計師來決定。批處理(batch)的程式設計在初級程式設計教學課程上是一種方式。然而,事件驅動程式設計這種設計模型是在互動程式(Interactive program)的情況下孕育而生的。