前端和后端

计算机科学

在软体架构和程序设计领域，前端是软体系统中直接和用户交互的部分，而后端控制着软件的输出。将软体分为前端和后端是一种将软体不同功能的部分相互分离的抽象。
大部分软体都概念性地分成了前端和后端，但大多数情况下，软体的后端经常是隐藏着而不被用户看到。但是，有些软体仅仅是另一个已经存在的软体的前端，就像一个图形用户界面 (GUI) 构建在字符界面之上。这些前端在Unix GUI中非常普遍，很多程序被分成了很多小项目，使它们能够互不依赖但又能协同在一起工作。（见桌面环境）
可以将与计算机交互过程分为前端和后端，例如：一个图形界面的文件管理器，就像Windows 资源管理器，可以想象成管理文件系统的前端。 在操作系统中，Unix Shell或Windows的cmd.exe可以认为是和操作系统交互的前端。
在编译器中，前端将程序设计语言源代码转换成一种中间形式，然后后端再将它转换成计算机能够运行的二进制代码。后端还经常对代码进行优化以提升程序的运行效率。前端和后端的区别能够将处理原代码的语法解析器和生成机器码和对代码进行优化的后端区分开。一些编译器，像 GCC，提供不同的前端分别解析不同语言的源代码 和/或 不同的后端针对不同的目标机器生成机器码。
在语音合成中，前端将输入的文字合成为代表音节的符号，后端将这些符号转换成真实的声音。