Skip to main content Accessibility help
×
Hostname: page-component-8448b6f56d-xtgtn Total loading time: 0 Render date: 2024-04-25T03:59:47.520Z Has data issue: false hasContentIssue false

C - C, C++, C# to Cracking

Published online by Cambridge University Press:  17 May 2010

Robert Plant
Affiliation:
University of Miami
Stephen Murrell
Affiliation:
University of Miami
Get access

Summary

Foundation concept: Programming language.

Definition: Standard, general-purpose programming languages.

Overview

The evolution of programming languages is a short but very complex story. By the mid 1970s the design of mainstream programming languages had branched in two directions: the general-purpose programming languages and the systems programming languages. General-purpose languages were strongly oriented towards supporting reliable software development; the structure of the languages corresponded closely to the structure of a good top-down design, providing programmers with a built-in framework for safe and verified construction; they were able to provide useful warnings about some of the most common things that could go wrong in a program's design before it is ever run, and they made many of the most troublesome of programmer errors impossible.

Unfortunately, what was good for general software development was not always good for low-level, or systems, programming. Implementors of operating systems, compilers, and hardware-monitoring software sometimes have to perform exactly the kind of low-level machine-oriented operations that are so strongly discouraged by the standards of good software development, and programming languages that enforce those standards are made almost unusable for such purposes.

As a result, the systems programming language branch of parallel evolution was also constructed. The essential feature of a systems programming language is that a programmer should be able to give any commands that the computer is capable of obeying, and not have to fight against builtin safety features if those commands do not satisfy some safety standard.

Type
Chapter
Information
An Executive's Guide to Information Technology
Principles, Business Models, and Terminology
, pp. 46 - 87
Publisher: Cambridge University Press
Print publication year: 2007

Access options

Get access to the full version of this content by using one of the access options below. (Log in options will check for institutional or personal access. Content may require purchase if you do not have access.)

References

Kernighan, B. and Ritchie, D. (1988). The C Programming Language, 2nd edn. (Englewood Cliffs, NJ, Prentice-Hall).Google Scholar
B. Stroustrup (1997). The C++ Programming Language (New York, Addison-Wesley).
http://msdn.microsoft.com/vcsharp/programming/language/.
Associated terminology: Java, Unix.
Cable Communications Policy Act 47 USC §551.
Associated terminology: Security, Encryption.
Handy, J. (1998). Cache Memory Book, 2nd edn. (San Diego, CA, Academic Press).Google Scholar
Associated terminology: CPU, Bus.
Schodek, D., Bechthold, M., Griggs, J., Kao, K., and Steinberg, M. (2004). Digital Design and Manufacturing: CAD/CAM Applications in Architecture and Design (New York, John Wiley and Sons).
Associated terminology: Virtual reality.
Browning, T. (1995). Capacity Planning for Computer Systems (New York, Academic Press).Google Scholar
Menasce, D. and Almeida, V. (2002). Capacity Planning for Web Services: Metrics, Models and Methods (Englewood Cliffs, NJ, Prentice-Hall).Google Scholar
Associated terminology: CIO.
G. Amdahl (1967). The validity of the single processor approach to achieving large-scale computing capabilities,” in Proceedings AFIPS National Computer Conference (Anaheim, CA, AFIPS), pp. 483–485.
Hoare, C. A. R. (1985). Communicating Sequential Processes (Englewood Cliffs, NJ, Prentice-Hall).
Jones, G. (1987). Programming in Occam (Upper Saddle River, NJ, Prentice-Hall).Google Scholar
Wolfram, S. (2002). A New Kind of Science (Champaign, IL, Wolfram Media).Google Scholar
Associated terminology: Parallel processing.
Mandelbrot, B. and Hudson, R. (2004). The Misbehavior of Markets: A Fractal View of Risk, Ruin and Reward (Cambridge, MA, Perseus).Google Scholar
Barnsley, M. (2001). Fractals Everywhere (San Diego, CA, Elsevier).Google Scholar
Williams, G. (1997). Chaos Theory Tamed (Washington, DC, Joseph Henry Press).Google Scholar
The Federal Register, March 15, 2006, Part III, Federal Trade Commission, 16 CFR Part 312, Children's Online Privacy Protection Rule; Final Rule.
15 USC §§6501–6505 (2006).
Associated terminology: Law cross-reference.
Earl, M., Feeney, M., and Feeney, D. (1994). “Is your CIO adding value?,”Sloan Management Review, Volume 35, Issue 3.Google Scholar
Associated terminology: Sarbanes–Oxley Act.
Sweiger, M., Madsen, M., Langston, J., and Lombard, H. (2002). Clickstream Data Warehousing (New York, John Wiley and Sons).Google Scholar
Associated terminology: Cookies, Spyware.
Stevens, W. (1994). TCP/IP Illustrated, Volume 1 (New York, Addison-Wesley).
Orfali, R., Harkey, D., and Edwards, J. (1999). Client/Server Survival Guide, 3rd edn. (New York, John Wiley and Sons).
Chellis, J., Perkins, C., and Strebe, M. (2000). MCSE: Networking Essentials, Study Guide, 3rd edn. (Alameda, CA, Sybex Press).
Associated terminology: Server, Client–server.
Stevens, W. (1994). TCP/IP Illustrated, Volume 1 (New York, Addison-Wesley).
Orfali, R., Harkey, D., and Edwards, J. (1999). Client/Server Survival Guide, 3rd edn. (New York, John Wiley and Sons).
Chellis, J., Perkins, C., and Strebe, M. (2000). MCSE: Networking Essentials, Study Guide, 3rd edn. (Alameda, CA, Sybex Press).
Associated terminology: Network, Server, Client, TCP, Internet protocol.
Kopper, K. (2005). Linux Enterprise Cluster: Build a Highly Available Cluster with Commodity Hardware and Free Software (San Francisco, CA, No Starch Press).
Sterling, T., Salmon, J., Becker, D., and Savarese, D. (1999). How to Build a Beowulf: A Guide to the Implementation and Application of PC Clusters (Cambridge, MA, MIT Press).Google Scholar
McCracken, D. (1970). Guide to Cobol Programming (New York, John Wiley and Sons).Google Scholar
http://www.cobolstandard.info/wg4/standard.html.
Hinman, H. (2004). Microsoft. NET for COBOL Programmers, 2nd edn. (Sunnyvale, CA, Fujitsu Software Corporation).
Associated terminology: C and C++, Java, XML.
Norris, G., Hurley, J., Hartley, K., Dunleavy, J., and Balls, J. (2001). e-Business and ERP Transforming the Enterprise (New York, John Wiley and Sons).Google Scholar
Associated terminology: XML, Client–server, Internet.
Wexelblatt, R. (1981). History of Programming Languages (New York, Elsevier).Google Scholar
Bergin, T. and Gibson, R. (1996). History of Programming Languages – II (New York, ACMPress–Addison-Wesley, 1996.Google Scholar
Associated terminology: C and C++, Java, Cobol.
Knuth, D. (1975). Fundamental Algorithms (New York, Addison-Wesley).Google Scholar
Hofi, M. (1975). Analysis of Algorithms (Oxford, Oxford University Press).Google Scholar
Associated terminology: Algorithm, Database, Computability.
Savood, K. (2000). Introduction to Data Compression, Morgan Kaufmann Series in Multimedia and Information Systems (San Francisco, CA, Morgan Kaufmann).
Associated terminology: Audio, Video, Information lifecycle management.
Hopcroft, J. and Ullman, J. (1979). Automata Theory, Languages, and Computation (New York, Addison-Wesley).Google Scholar
Brady, J. (1977). The Theory of Computer Science (London, Chapman and Hall).Google Scholar
A. Turing (1936). “On computable numbers with an application to the Entscheidungsproblem,” Proceedings of the London Mathematical Society, 2 (42), 230–265.
Associated terminology: Algorithm, Complexity.
Campbell, M.-Kelly and Aspray, W. (2004). Computer: A History of the Information Machine (New York, Basic Books).Google Scholar
Associated terminology: Hardware, Operating systems, Client–server, ERP.
Clark, R. and Mayer, R. (2002). e-Learning and the Science of Instruction: Proven Guidelines for Consumers and Designers of Multimedia Learning (San Francisco, CA, Pfeiffer).Google Scholar
Associated terminology: CD-ROM, LAN, Internet.
18 USC 1030; Public Law 99–474.
http://www.usdoj.gov/criminal/cybercrime/1030NEW.htm.
Associated terminology: Virus, Trojan horse, Law cross-reference.
“Computer Misuse Act 1990 Elizabeth II. Chapter 18,” The Stationery Office Limited, 123 Kingsway, London WC2B 6PQ, UK.
Associated terminology: Law cross-reference.
Computer Security Act of 1987, Public Law 100–235 (H. R. 145).
Associated terminology: Law cross-reference.
D. Kristol and L. Montulli (2000). “RFC2965: HTTP State Management Mechanism” (proposed standard), http://www.ietf.org/rfc/rfc2965.txt.
http://www.cookiecentral.com/dsm.htm.
Associated terminology: Web server, Security.
Thimmannagari, C. (2004). CPU Design: Answers to Frequently Asked Questions (New York, Springer).Google Scholar
http://www.intel.com/technology/silicon/mooreslaw/index.htm.
Associated terminology: Cell computing, Bus, Clone.

Save book to Kindle

To save this book to your Kindle, first ensure coreplatform@cambridge.org is added to your Approved Personal Document E-mail List under your Personal Document Settings on the Manage Your Content and Devices page of your Amazon account. Then enter the ‘name’ part of your Kindle email address below. Find out more about saving to your Kindle.

Note you can select to save to either the @free.kindle.com or @kindle.com variations. ‘@free.kindle.com’ emails are free but can only be saved to your device when it is connected to wi-fi. ‘@kindle.com’ emails can be delivered even when you are not connected to wi-fi, but note that service fees apply.

Find out more about the Kindle Personal Document Service.

Available formats
×

Save book to Dropbox

To save content items to your account, please confirm that you agree to abide by our usage policies. If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your account. Find out more about saving content to Dropbox.

Available formats
×

Save book to Google Drive

To save content items to your account, please confirm that you agree to abide by our usage policies. If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your account. Find out more about saving content to Google Drive.

Available formats
×