Content deleted Content added
Corrected grammatical error |
m →Lessons: replaced: recursively-defined → recursively defined |
||
(25 intermediate revisions by 18 users not shown) | |||
Line 1:
{{Short description|1978 book by Brian W. Kernighan and P. J. Plauger}}
{{third-party|date=February 2015}}
'''''The Elements of Programming Style''''', by [[Brian W. Kernighan]] and [[P. J. Plauger]], is a study of [[programming style]], advocating the notion that computer programs should be written not only to satisfy the compiler or personal programming "style", but also for "readability" by humans, specifically [[software maintenance]] engineers, [[programmers]] and [[technical writers]].▼
{{Infobox book
The book pays explicit homage, in title and tone, to ''[[The Elements of Style]]'', by [[William Strunk Jr.|Strunk]] & [[E. B. White|White]] and is considered a practical template promoting [[Edsger Dijkstra|Edsger Dijkstra's]] [[structured programming]] discussions. It has been influential and has spawned a series of similar texts tailored to individual languages, such as ''The Elements of C Programming Style'', ''The Elements of C# Style'', ''The Elements of Java(TM) Style'', ''The Elements of MATLAB Style'', etc.▼
| italic title = <!--(see above)-->
| name =
| image = The Elements of Programming Style.jpg
| image_size =
| border =
| alt =
| caption = Cover of the second edition
| author = [[Brian W. Kernighan]] and [[P. J. Plauger]]
| audio_read_by =
| title_orig =
| orig_lang_code =
| title_working =
| translator =
| illustrator =
| cover_artist =
| country =
| language =
| series =
| release_number =
| subject =
| genre =
| set_in =
| publisher =
| publisher2 =
| pub_date = 1978
| english_pub_date =
| published = McGraw-Hill
| media_type =
| pages = 168 pages
| awards =
| isbn = 978-0070342071
| isbn_note =
| oclc =
| dewey =
| congress =
| preceded_by =
| followed_by =
| native_wikisource =
| wikisource =
| notes =
| exclude_cover =
| website =
}}
▲'''''The Elements of Programming Style''''', by [[Brian W. Kernighan]] and [[P. J. Plauger]], is a study of [[programming style]], advocating the notion that computer programs should be written not only to satisfy the compiler or personal programming "style", but also for "readability" by humans, specifically [[software maintenance]] engineers, [[programmers]] and [[technical writers]]. It was originally published in 1974.
▲The book pays explicit homage, in title and tone, to ''[[The Elements of Style]]'', by [[William Strunk Jr.|Strunk]] & [[E. B. White|White]] and is considered a practical template promoting [[Edsger Dijkstra|Edsger Dijkstra's]] [[structured programming]] discussions.
The book is built on short examples from actual, published programs in programming textbooks. This results in a practical treatment rather than an abstract or academic discussion. The style is diplomatic and generally sympathetic in its criticism, and unabashedly honest as well— some of the examples with which it finds fault are from the authors' own work (one example in the second edition is from the first edition).
==Lessons==
Its lessons are summarized at the end of each section in [[Aphorism|pithy maxims]], such as "Let the machine do the dirty work":
# Write clearly
# Say what you mean, simply and directly.
# Use library functions whenever feasible.
# Avoid too many temporary variables.
# Write clearly
# Let the machine do the dirty work.
# Replace repetitive expressions by calls to common functions.
Line 22 ⟶ 69:
# Modularize. Use procedures and functions.
# Avoid gotos completely if you can keep the program readable.
# Don't patch bad code
# Write and test a big program in small pieces.
# Use recursive procedures for recursively
# Test input for plausibility and validity.
# Make sure input doesn't violate the limits of the program.
Line 34 ⟶ 81:
# Use self-identifying input. Allow defaults. Echo both on output.
# Make sure all variables are initialized before use.
# Don't stop at one bug.
# Use debugging compilers.
#
# Take care to branch the right way on equality.
# Be careful if a loop exits to the same place from the middle and the bottom.
Line 53 ⟶ 100:
# Make sure special cases are truly special.
# Keep it simple to make it faster.
# Don't diddle code to make it faster
# Instrument your programs. Measure before making efficiency changes.
# Make sure comments and code agree.
# Don't just echo the code with comments
# Don't comment bad code
# Use variable names that mean something.
# Use statement labels that mean something.
Line 64 ⟶ 111:
# Don't over-comment.
Modern readers may find it a shortcoming that its examples use older [[procedural programming languages]] ([[Fortran]] and [[PL/I]])
==Reception==
''[[Kilobaud Microcomputing]]'' stated that "If you intend to write programs to be used by other people, then you should read this book. If you expect to become a professional programmer, this book is mandatory reading".<ref name="reeves198001">{{cite news | url=https://archive.org/stream/kilobaudmagazine-1980-01/Kilobaud_Microcomputing_1980_January#page/n7/mode/2up | title=The Elements of Programming Style | work=Kilobaud Microcomputing | date=January 1980 | accessdate=23 June 2014 | author=Reeves, Jack W. | pages=9}}</ref>
==References==
{{reflist}}
*B. W. Kernighan and P. J. Plauger, ''The Elements of Programming Style'', McGraw-Hill, New York, 1974. ISBN 0-07-034199-0▼
*B. W. Kernighan and P. J. Plauger, ''The Elements of Programming Style 2nd Edition'', McGraw Hill, New York, 1978. ISBN 0-07-034207-5▼
▲*B. W. Kernighan and P. J. Plauger, ''The Elements of Programming Style'', McGraw-Hill, New York, 1974. {{ISBN
▲*B. W. Kernighan and P. J. Plauger, ''The Elements of Programming Style 2nd Edition'', McGraw Hill, New York, 1978. {{ISBN
==External links==
*[http://www.softwarequotes.com/showquotes.aspx?id=574&name=P. J. Plauger selected quotes from ''The Elements of Programming Style'']
*{{YouTube|id=8SUkrR7ZfTA|title=Elements of Programming Style – 2009 Brian Kernighan talk at Princeton}}
{{DEFAULTSORT:Elements Of Programming Style, The}}
[[Category:1974 non-fiction books]]
[[Category:Computer programming books]]
[[Category:Collaborative non-fiction books]]
[[Category:McGraw-Hill books]]
|