Programming and coding, formally called computer programming, is writing, testing, debugging, troubleshooting, and maintaining the code of a machine. Programming creates a program that has specific behavior that the designer sets forth (and this is called "customization"). Code is written in a computer language. A computer language is an artificial language and allows a set of instructions for organizing or processing to be performed by a computer. The coding process requires knowledge in various subjects, such as algorithms and formal logic.
A programming language is a subset of computer languages. Programming languages are used to create programs which control computer operations and are written in specifications of syntax ("form") and semantics ("meaning"). In a sense, the methods to control machines such as the Jacquard loom and player piano were composed of programing languages but this is not what is meant in the modern sense of the term. Programming languages are referenced to a specification document, like an ISO Standard, or have a dominant implementation
Thousands of different programming languages exist. The following are a variety of more widely used languages:
Typed versus untyped
Static versus dynamic
Weak and strong
Transforms source code into binary executable program
Transforms source code (source language)
Target language (object code)
Markup languages are computer languages, though not usually referred to as programming languages. Markup languages define structured data. Different markup languages exist. The following are a variety of more widely used languages:
- Friedl, J. E. F., & Oram, A. (2006). Mastering regular expressions: [understand your data and be more productive ; for Perl, PHP, Java, .NET, Ruby, and more!.] Programming. Sebastopol, Ca. [u.a.]: O'Reilly.
- Scott, Michael L. (2005). Programming Language Pragmatics. Morgan Kaufmann Publishers.
- Adi, A. (2005). Rules and rule markup languages for the semantic web First international conference; proceedings. Lecture notes in computer science, Vol. 3791. Berlin: Springer.
- Patterson, D. A., & Hennessy, J. L. (2005). Computer organization and design: The hardware/software interface. San Francisco, Calif: Morgan Kaufmann.
- Hyde, R. (2004). Write great code, Understanding the machine. San Francisco, Calif: No Starch Press.
- Raymond, E. S. (2004). The art of UNIX programming: [with contributions from thirteen UNIX pioneers, including its inventor, Ken Thompson]. Addison-Wesley professional computing series. Boston [u.a.]: Addison-Wesley.
- Krishnamurthi, S. (2003). Programming languages: Application and interpretation. (online)
- Backhouse, R., & Gibbons, J. (2003). Generic programming: Advanced lectures ; [lectures presented at a Summer School on Generic Programming held at the University of Oxford in August 2002]. Lecture notes in computer science, 2793. Berlin [u.a.]: Springer.
- Mitchell, John C. (2002). Concepts in Programming Languages. Cambridge University Press.
- Pierce, B. C. (2002). Types and Programming Languages'. The MIT Press.
- Friedman, Daniel P., M. Wand, and C. T. Haynes (2001). 'Essentials of Programming Languages. The MIT Press.
- Cormen, T. H. (2001). Introduction to algorithms. Cambridge, Mass: MIT Press.
- Raymond, E. S. (2001). The cathedral and the bazaar: Musings on linux and open source by an accidental revolutionary. Beijing [u.a.]: O'Reilly.
- MacLennan, Bruce J. (1999). Principles of Programming Languages: Design, Evaluation, and Implementation. Oxford University Press.
- Loukides, M. K., & Oram, A. (1997). Programming with GNU software. A Nutshell handbook. Sebastopol, CA: O'Reilly & Associates.
- National Research Council (U.S.). (1997). The unpredictable certainty: Information infrastructure through 2000 : white papers. Washington, D.C.: National Academy Press.
- Sethi, Ravi, (1996). Programming Languages: Concepts and Constructs. 2nd ed., Addison-Wesley.
- National Research Council (U.S.). (1995). Preserving scientific data on our physical universe: A new strategy for archiving the nation's scientific information resources. Washington, D.C.: National Academy Press.
- Microsoft Corporation. (1993). Programmer's guide: Microsoft Visual Basic, programming system for Windows, version 3.0. Redmond, WA: Microsoft Corporation.
- Wexelblat, Richard L. [ed.] (1981). History of Programming Languages. Academic Press.
- D. W. Barron (1977). An introduction to the study of programming languages. CUP Archive.
- Weinberg, Gerald M. (1971). The Psychology of Computer Programming'. New York: Van Nostrand Reinhold,
- Gelernter, D., and S. Jagannathan (1990). Programming Linguistics. The MIT Press.
- National Research Council (U.S.), & Beam, W. R. (1989). Adapting software development policies to modern technology. Washington, D.C.: National Academy Press.
- Maurer, W. D. (1968). Programming; An introduction to computer languages and techniques. San Francisco: Holden-Day.
- World Wide Web Consortium (W3C)
- International Organization for Standardization (ISO)
- 99 Bottles of Beer A collection of implementations in many languages.
- Syntax Patterns for Various Languages
- Jeffrey Elkner, Allen B. Downey and Chris Meyers, How to Think Like a Computer Scientist