Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Second-generation programming language
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Way to categorize assembly languages}} The label of '''second-generation programming language''' ('''2GL''') is a generational way to categorize [[assembly language]]s.<ref name="Computer Hope">[http://www.computerhope.com/jargon/num/1gl.htm "Computer Hope, Generation languages"]</ref><ref name="Brookshear">{{cite book |last1=Brookshear |first1=J. Glenn |title=Computer science : an overview |year=2012 |publisher=Addison-Wesley |isbn=978-0-13-256903-3 |pages=240β241 |edition=11th}}</ref><ref name=":0">{{Cite web|url=http://www.uni-miskolc.hu/~geofiz/Oktatok/vass/Generations_and_paradigms.pdf|title=Programming Language generations and Programming Paradigms|last=Vass|first=PΓ©ter}}</ref> They belong to the [[Low-level programming language|low-level programming languages]]. The term was coined to provide a distinction from higher level [[machine independent]] [[third-generation programming language]]s (3GLs) (such as [[COBOL]], [[C (programming language)|C]], or [[JavaScript]]) and earlier [[first-generation programming language]]s ([[machine code]])<ref name="Brookshear" /><ref name=":1">{{Cite web|url=http://www.wisegeek.com/what-are-programming-language-generations.htm|title=What Are Programming Language Generations?|website=wiseGEEK|language=en-US|access-date=2019-06-11}}</ref> ==Second-generation programming language== {{further| Assembly language}} Second-generation programming languages have the following properties: *Lines within a program correspond directly to processor commands, essentially acting as a mnemonic device overlaying a first generation programming language. *The code can be read and written by a programmer. To run on a computer it must be converted into a machine readable form, a process called [[Assembly language|assembly]].<ref name=":1" /> *The language is specific to a particular processor family and environment.<ref name="Brookshear" /> Second-generation languages are sometimes used for parts of [[kernel (operating system)|kernel]]s or [[device drivers]], and are sometimes used in video games, graphics programs, and other intensive programs.<ref name="Computer Hope" /> In modern programs, second generation assembly languages are rarely used.<ref>{{Cite web|url=http://statisticstimes.com/tech/top-computer-languages.php|title=Top Computer Languages 2019 - StatisticsTimes.com|website=statisticstimes.com|access-date=2019-06-11|archive-url=https://archive.today/20190612064009/http://statisticstimes.com/tech/top-computer-languages.php|archive-date=2019-06-12}}</ref> Programming in second generation languages may yield speed benefits, but several disadvantages have led to its decline: * Programming is expressed in terms of individual processor instructions, rather than higher level logic.<ref name="Brookshear" /><ref name=":0" /> * Low-level memory and hardware details must be manually managed which is often bug-prone.<ref name="Brookshear" /> * Programs are [[machine-dependent]], so different versions must be written for every target machine architecture.<ref name=":0" /> The vast majority of programs are written in a [[third-generation programming language]] or a [[fourth-generation programming language]]. Assembly's main advantage, speed, has degraded by the fact that well written [[C (programming language)|C]] code can often be as fast or even faster than handwritten assembly.<ref name="Brookshear" /><ref>{{cite web |last1=Walls |first1=Colin |title=Why C is faster than assembly |url=https://blogs.mentor.com/colinwalls/blog/2013/02/18/why-c-is-faster-than-assembly/ |website=Mentor, a Sieman's Business |publisher=Mentor Inc. |archive-url=https://web.archive.org/web/20200129065925/https://blogs.mentor.com/colinwalls/blog/2013/02/18/why-c-is-faster-than-assembly/ |access-date=11 June 2019|archive-date=2020-01-29 }}</ref> Second generation languages are perhaps most significant in their place in computing history. For a long time, Second generation assembly languages were the only good option for development for many machines, such as the [[Nintendo Entertainment System|NES]] or the [[Commodore 64]].<ref>{{cite web |last1=Commodore corporation |title=C64 programmer's reference |url=https://www.commodore.ca/manuals/c64_programmers_reference/c64-programmers_reference_guide-05-basic_to_machine_language.pdf |publisher=Commodore corporation |access-date=11 June 2019}}</ref><ref>{{cite web |author1=Wikibooks contributors |title=NES assembly |url=https://en.wikibooks.org/w/index.php?title=NES_Programming&oldid=3551383 |website=Wikibooks: NES Assembly |access-date=11 June 2019}}</ref> Second generation languages represented a massive step away from the tradition of programmers conforming to the needs of a machine, and the first step towards the machine accommodating for the programmer, a phenomenon that would be repeated in all subsequent programming language generations.<ref name="Brookshear" /><ref name=":0" /> ==References== {{Reflist}} {{Programming language generations}} [[Category:Programming language classification]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Cite book
(
edit
)
Template:Cite web
(
edit
)
Template:Further
(
edit
)
Template:Programming language generations
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)