Can you summarize the following document?
        
  在軟體架構和程式設計領域,前端是軟體系統中直接和使用者互動的部分,而後端控制著軟體的輸出。將軟體分為前端和後端是一種將軟體不同功能的部分相互分離的抽象。  大部分軟體都概念性地分成了前端和後端,但大多數情況下,軟體的後端經常是隱藏著而不被使用者看到。但是,有些軟體僅僅是另一個已經存在的軟體的前端,就像一個圖形使用者介面 (GUI) 構建在字元介面之上。這些前端在Unix GUI中非常普遍,很多程式被分成了很多小專案,使它們能夠互不依賴但又能協同在一起工作。(見桌面環境)  可以將與計算機互動過程分為前端和後端,例如:一個圖形介面的檔案管理器,就像Windows 檔案總管,可以想象成管理檔案系統的前端。 在作業系統中,Unix Shell或Windows的cmd.exe可以認為是和作業系統互動的前端。  在編譯器中,前端將程式設計語言原始碼轉換成一種中間形式,然後後端再將它轉換成計算機能夠執行的二進位制程式碼。後端還經常對程式碼進行優化以提升程式的執行效率。前端和後端的區別能夠將處理原始碼的語法解析器和生成機器碼和對程式碼進行優化的後端區分開。一些編譯器,像 GCC,提供不同的前端分別解析不同語言的原始碼 和/或 不同的後端針對不同的目標機器生成機器碼。  在語音合成中,前端將輸入的文字合成為代表音節的符號,後端將這些符號轉換成真實的聲音。
前端(英語:front-end)和後端(英語:back-end)是描述程序開始和結束的通用詞彙。前端作用於採集輸入資訊,後端進行處理。計算機程式的介面樣式,視覺呈現屬於前端。