Front end and back end: Difference between revisions

Content deleted Content added
Changing short description from "Presentation layer of piece of software" to "Presentation and data access aspecs in software architecture"
Luelista (talk | contribs)
Software definitions: Removed a sentence that made no sense, rephrased another.
Line 14:
 
In [[speech synthesis]], the frontend refers to the part of the synthesis system that converts the input text into a [[symbol]]ic [[phonetics|phonetic]] representation, and the backend converts the symbolic phonetic representation into actual sounds.<ref>{{Cite web|url=http://research.cs.tamu.edu/prism/lectures/sp/l18.pdf|title=L18: Speech synthesis (backend)|last=Gutierrez--Osuna|first=Ricardo|website=tamu.edu|publisher=Texas A&M University|access-date=29 December 2016}}</ref>
 
For major computer subsystems, a graphical [[file manager]] is a frontend to the computer's [[file system]], and a [[Shell (computing)|shell]] interfaces with the [[operating system]]. The frontend faces the user, and the backend launches the programs of the operating system in response.{{Citation needed|date=December 2016}}
 
In [[compilers]], the [[Compilers#Frontend|frontend]] [[Translator (computing)|translates]] a computer programming [[source code]] into an [[intermediate representation]], and the backend works with the intermediate representation to produce code in a computer output language. The backend usually [[Program optimization|optimizes]] to produce code that runs faster. The frontend/backend distinction can separate the [[Parsing|parser]] section that deals with source code and the backend that [[Code generation (compiler)|generates code and optimizes]]. Some designs, such as [[GNU Compiler Collection|GCC]], offer choices between multiple frontends (parsing different source [[Programming language|languages]]) or backends (generating code for different target [[Central processing unit|processors]]).<ref>{{Cite web|url=http://www.personal.kent.edu/~rmuhamma/Compilers/MyCompiler/phase.htm|title=Operating Systems Notes|last=Bin Muhammad|first=Rashid|website=www.personal.kent.edu|publisher=Kent State University|access-date=30 December 2016}}</ref>
 
Some [[graphical user interface]] (GUI) applications running in a [[desktop environment]] are implemented as a thin frontend for underlying [[command-line interface]] (CLI) programs, to save the user from learning the special terminology and memorization of [[Command (computing)|commands]].
Using the [[command-line interface]] (CLI) requires the acquisition of special terminology and memorization of [[Command (computing)|commands]], so a [[graphical user interface]] (GUI) acts as a frontend [[desktop environment]] instead.
 
=== Web development as an example ===