Computer programs (also software programs, or just programs) are instructions for a computer. In Computer science, an instruction is a single operation of a processor defined by an Instruction set architecture. A computer is a Machine that manipulates data according to a list of instructions. [1] A computer requires programs to function, and a computer program does nothing unless its instructions are executed by a central processor. [2] Computer programs are either executable programs or the source code from which executable programs are derived (e. In Computing, an executable (file causes a computer "to perform indicated tasks according to encoded instructions," as opposed to a file that only contains In Computer science, source code (commonly just source or code) is any sequence of statements or declarations written in some Human-readable g. , compiled). A compiler is a Computer program (or set of programs that translates text written in a computer language (the source language) into another
Computer source code is often written by professional computer programmers. A programmer is someone who writes Computer software. The term computer programmer can refer to a specialist in one area of computer programming or to a generalist Source code is written in a programming language that usually follows one of two main paradigms: imperative or declarative programming. A programming language is an Artificial language that can be used to write programs which control the behavior of a machine particularly a Computer. A programming paradigm is a fundamental style of Computer programming. In Computer science, imperative programming is a Programming paradigm that describes computation in terms of statements that change a program state Source code may be converted into an executable file (sometimes called an executable program) by a compiler. In Computing, an executable (file causes a computer "to perform indicated tasks according to encoded instructions," as opposed to a file that only contains A compiler is a Computer program (or set of programs that translates text written in a computer language (the source language) into another Computer programs may be executed by a central processing unit, with the aid of an interpreter, or may be embedded directly into hardware. In Computer science, an interpreter normally means a Computer program that executes, i In Computing, firmware is a computer program that is Embedded in a hardware device for example a Microcontroller. Typical PC hardware A typical Personal computer consists of a case or chassis in a tower shape (desktop and the following parts Motherboard
Computer programs may be categorized along functional lines: system software and application software. System software is any Computer software which manages and controls Computer hardware so that Application software can perform a task Application software is a subclass of Computer software that employs the capabilities of a computer directly and thoroughly to a task that the user wishes to perform And many computer programs may run simultaneously on a single computer, a process known as multitasking. In computing Multitasking is a method by which multiple tasks also known as processes, share common processing resources such as a CPU.
Contents |
Computer programming is the iterative process of writing or editing source code. tags please moot on the talk page first! --> In Computing, C is a general-purpose cross-platform block structured In Computer science, source code (commonly just source or code) is any sequence of statements or declarations written in some Human-readable Editing source code involves testing, analyzing, and refining. A person who practices this skill is referred to as a computer programmer or software developer. A programmer is someone who writes Computer software. The term computer programmer can refer to a specialist in one area of computer programming or to a generalist The sometimes lengthy process of computer programming is usually referred to as software development. Software development is the translation of a user need or marketing goal into a Software product The term software engineering is becoming popular as the process is seen as an engineering discipline. Software engineering is the application of a systematic disciplined quantifiable approach to the development operation and maintenance of Software. Engineering is the Discipline and Profession of applying technical and scientific Knowledge and
Computer programs can be categorized by the programming language paradigm used to produce them. A programming language is an Artificial language that can be used to write programs which control the behavior of a machine particularly a Computer. A programming paradigm is a fundamental style of Computer programming. Two of the main paradigms are imperative and declarative. In Computer science, imperative programming is a Programming paradigm that describes computation in terms of statements that change a program state
Programs written using an imperative language specify an algorithm using declarations, expressions, and statements. In Mathematics, Computing, Linguistics and related subjects an algorithm is a sequence of finite instructions often used for Calculation [3] A declaration associates a variable name with a datatype. A variable (ˈvɛərɪəbl is an Attribute of a physical or an abstract System which may change its Value while it is under Observation. A data type in Programming languages is an attribute of a datum which tells the computer (and the programmer something about the kind of datum it is For example: var x: integer; . An expression yields a value. For example: 2 + 2 yields 4. Finally, a statement might assign an expression to a variable or use the value of a variable to alter the program's control flow. For example: x := 2 + 2; if x = 4 then do_something(); One criticism of imperative languages is the side-effect of an assignment statement on a class of variables called non-local variables. [4]
Programs written using a declarative language specify the properties that have to be met by the output and do not specify any implementation details. Two broad categories of declarative languages are functional languages and logical languages. In Computer science, functional programming is a Programming paradigm that treats Computation as the evaluation of mathematical functions and Engineered languages (sometimes abbreviated to engilangs or engelangs) are Constructed languages devised to test or prove some hypothesis about how languages The principle behind functional languages (like Haskell) is to not allow side-effects, which makes it easier to reason about programs like mathematical functions. Haskell is a standardized Purely functional Programming language with non-strict semantics, named after the Logician Haskell Curry [4] The principle behind logical languages (like Prolog) is to define the problem to be solved — the goal — and leave the detailed solution to the Prolog system itself. Prolog is a Logic programming language It is a general purpose language often associated with Artificial intelligence and Computational linguistics [5] The goal is defined by providing a list of subgoals. Then each subgoal is defined by further providing a list of its subgoals, etc. If a path of subgoals fails to find a solution, then that subgoal is backtracked and another path is systematically attempted. Backtracking is a type of Algorithm that is a refinement of Brute force search.
The form in which a program is created may be textual or visual. In a visual language program, elements are graphically manipulated rather than textually specified. A visual language is a set of practices by which Images can be used to communicate Concepts Overview Creation of an image to communicate
A computer program in the form of a human-readable, computer programming language is called source code. In Computer science, source code (commonly just source or code) is any sequence of statements or declarations written in some Human-readable Source code may be converted into an executable image by a compiler or executed immediately with the aid of an interpreter. In Computing, an executable (file causes a computer "to perform indicated tasks according to encoded instructions," as opposed to a file that only contains A compiler is a Computer program (or set of programs that translates text written in a computer language (the source language) into another In Computer science, an interpreter normally means a Computer program that executes, i
Compiled computer programs are commonly referred to as executables, binary images, or simply as binaries — a reference to the binary file format used to store the executable code. The binary numeral system, or base-2 number system, is a Numeral system that represents numeric values using two symbols usually 0 and 1. A file format is a particular way to encode information for storage in a Computer file. Compilers are used to translate source code from a programming language into either object code or machine code. In Computer science, object code, or an object file, is the representation of code that a Compiler or Assembler generates by processing Machine code or machine language is a system of instructions and data executed directly by a Computer 's Central processing unit. Object code needs further processing to become machine code, and machine code is the Central Processing Unit's native code, ready for execution. Microprogramming (ie writing microcode) is a method that can be employed to implement Machine instructions in a CPU relatively easily often using less
Interpreted computer programs are either decoded and then immediately executed or are decoded into some efficient intermediate representation for future execution. BASIC, Perl, and Python are examples of immediately executed computer programs. In Computer programming, BASIC (an Acronym for Beginner's All-purpose Symbolic Instruction Code) is a family of High-level programming languages NOTES FOR EDITORS "Perl" is not an acronym (read the "Name" section below Python is a general-purpose High-level programming language. Its design philosophy emphasizes programmer productivity and code readability Alternatively, Java computer programs are compiled ahead of time and stored as a machine independent code called bytecode. Bytecode is a term which has been used to denote various forms of Instruction sets designed for efficient execution by a software interpreter as well as being suitable Bytecode is then executed upon request by an interpreter called a virtual machine. In Computer science, a virtual machine (VM is a Software implementation of a machine (computer that executes programs like a real machine
The main disadvantage of interpreters is computer programs run slower than if compiled. Interpreting code is slower than running the compiled version because the interpreter must decode each statement each time it is loaded and then perform the desired action. Decoding is the reverse of Encoding, which is the process of transforming information from one format into another In Computer programming a statement can be thought of as the smallest standalone element of an imperative Programming language. On the other hand, software development may be quicker using an interpreter because testing is immediate when the compilation step is omitted. Another disadvantage of interpreters is the interpreter must be present on the computer at the time the computer program is executed. Alternatively, compiled computer programs need not have the compiler present at the time of execution.
No properties of a programming language require it to be exclusively compiled or exclusively interpreted. The categorization usually reflects the most popular method of language execution. For example, BASIC is thought of as an interpreted language and C a compiled language, despite the existence of BASIC compilers and C interpreters.
A computer program in execution is normally treated as being different from the data the program operates on. Execution in computer and Software engineering is the process by which a Computer or Virtual computer carries out the instructions In Computer science, data is anything in a form suitable for use with a Computer. However, in some cases this distinction is blurred when a computer program modifies itself. The modified computer program is subsequently executed as part of the same program. Self-modifying code is possible for programs written in Lisp, COBOL, and Prolog. In Computer science, self-modifying code is code that alters its own instructions, intentionally or otherwise while it is executing. Lisp (or LISP) is a family of Computer Programming languages with a long history and a distinctive fully parenthesized syntax COBOL (ˈkoʊbɒl is one of the oldest programming languages still in active use Prolog is a Logic programming language It is a general purpose language often associated with Artificial intelligence and Computational linguistics
Typically, computer programs are stored in non-volatile memory until requested either directly or indirectly to be executed by the computer user. Non-volatile memory, nonvolatile memory, NVM or non-volatile storage, is Computer memory that can retain the stored information Execution in computer and Software engineering is the process by which a Computer or Virtual computer carries out the instructions Upon such a request, the program is loaded into random access memory, by a computer program called an operating system, where it can be accessed directly by the central processor. An operating system (commonly abbreviated OS and O/S) is the software component of a Computer system that is responsible for the management and coordination The central processor then executes ("runs") the program, instruction by instruction, until termination. A program in execution is called a process. In computing a process is an instance of a Computer program that is being sequentially executed by a computer system that has the ability to run several computer [6] Termination is either by normal self-termination or by error — software or hardware error.
Some computer programs are embedded into hardware. A stored-program computer requires an initial computer program stored in its read-only memory to boot. The von Neumann architecture is a design model for a stored-program Digital computer that uses a processing unit and a single separate storage structure In Computing, booting ( booting up) is a bootstrapping process that starts Operating systems when the user turns on a Computer system The boot process is to identify and initialize all aspects of the system, from CPU registers to device controllers to memory contents. In Computer architecture, a processor register is a small amount of storage available on the CPU whose contents can be accessed more quickly than storage In computing a device driver or software driver is a Computer program allowing higher-level computer programs to interact with a Hardware device Volatile memory, also known as volatile storage or primary storage device, is Computer memory that requires power to maintain the stored information [7] Following the initialization process, this initial computer program loads the operating system and sets the program counter to begin normal operations. An operating system (commonly abbreviated OS and O/S) is the software component of a Computer system that is responsible for the management and coordination The program counter, or shorter PC (also called the instruction pointer, part of the instruction sequencer in some Computers is a register in Independent of the host computer, a hardware device might have embedded firmware to control its operation. For an account of the words periphery and peripheral as they are used in biology sociology politics computer hardware and other fields see the In Computing, firmware is a computer program that is Embedded in a hardware device for example a Microcontroller. Firmware is used when the computer program is rarely or never expected to change, or when the program must not be lost when the power is off. [8]
Computer programs historically were manually input to the central processor via switches. The Data General Nova was a popular 16-bit Minicomputer built by the United States company Data General starting in 1969 An instruction was represented by a configuration of on/off settings. After setting the configuration, an execute button was pressed. This process was then repeated. Computer programs also historically were manually input via paper tape or punched cards. Punched tape or paper tape is a largely obsolete form of Data storage, consisting of a long strip of paper in which holes are punched to store data After the medium was loaded, the starting address was set via switches and the execute button pressed. [9]
Generative programming is a style of computer programming that creates source code through generic classes, prototypes, templates, aspects, and code generators to improve programmer productivity. In Computer science, the term automatic programming identifies a type of Computer programming in which some mechanism generates a Computer program rather In Computer science, source code (commonly just source or code) is any sequence of statements or declarations written in some Human-readable Generic programming is a style of Computer programming in which algorithms are written in terms of to-be-specified-later types that are then instantiated In Object-oriented programming, a class is a Programming language construct that is used as a blueprint to create objects This blueprint includes attributes Prototype-based programming is a style of Object-oriented programming in which classes are not present and behavior reuse (known as inheritance in class-based Templates are a feature of the C++ programming language that allow functions and classes to operate with generic types. In Computer science, an aspect is a part of a program that cross-cuts its Core concerns therefore violating its Separation of concerns. In Computer science, code generation is the process by which a Compiler 's code generator converts some internal representation of Source code A programmer is someone who writes Computer software. The term computer programmer can refer to a specialist in one area of computer programming or to a generalist Source code is generated with programming tools such as a template processor or an Integrated Development Environment. A programming tool or software development tool is a program or application that Software developers use to create debug maintain or otherwise A template processor (also known as a template engine or a template parser In Computing, an integrated development environment ( IDE) is a Software application that provides comprehensive facilities to Computer programmers The simplest form of source code generator is a macro processor, such as the C preprocessor, which replaces patterns in source code according to relatively simple rules. A macro (from the Greek 'μάκρο' for long or far in Computer science is a rule or Pattern that specifies how a certain input sequence (often a sequence The C preprocessor ( cpp) is the Preprocessor for the C programming language.
Software engines output source code or markup code that simultaneously become the input to another computer process. In computer science a software engine refers to the core of a Computer program. A markup language is an Artificial language using a set of annotations to text that give instructions regarding the structure of text or how it is to be displayed In computing a process is an instance of a Computer program that is being sequentially executed by a computer system that has the ability to run several computer The analogy is that of one process driving another process, with the computer code being burned as fuel. Application servers are software engines that deliver applications to client computers. In n-tier architecture an application server is a Server that hosts an API to expose Business Logic and Business Processes for use by other A client is an application or system that accesses a remote service on another Computer system, known as a server, by way of a Network. For example, a Wiki is an application server that allows users to build dynamic content assembled from articles. Wiki software is a type of Collaborative software that runs a Wiki system Classical Hypertext navigation occurs among An article is a stand-alone section of a larger written work These nonfictional Prose compositions appear in Magazines Newspapers Academic journals Wikis generate HTML, CSS, Java, and Javascript which are then interpreted by a web browser. HTML, an initialism of HyperText Markup Language, is the predominant Markup language for Web pages It provides a means to describe the structure JavaScript is a Scripting language most often used for Client-side web development In Computer science, an interpreter normally means a Computer program that executes, i A web browser is a software application which enables a user to display and interact with text images videos music games and other information typically located on a
Many operating systems support multitasking which enables many computer programs to appear to be running simultaneously on a single computer. In computing a process is an instance of a Computer program that is being sequentially executed by a computer system that has the ability to run several computer Multiprocessing is the use of two or more central processing units (CPUs within a single computer system In computing Multitasking is a method by which multiple tasks also known as processes, share common processing resources such as a CPU. Operating systems may run multiple programs through process scheduling — a software mechanism to switch the CPU among processes frequently so that users can interact with each program while it is running. Scheduling is a key concept in Computer multitasking and Multiprocessing Operating system design and in Real-time operating system design A context switch is the Computing process of storing and restoring the state ( context) of a CPU such that multiple processes can share Time-sharing refers to sharing a computing resource among many users by multitasking. [10] Within hardware, modern day multiprocessor computers or computers with multicore processors may run multiple programs. [11]
Computer programs may be categorized along functional lines. These functional categories are system software and application software. System software is any Computer software which manages and controls Computer hardware so that Application software can perform a task Application software is a subclass of Computer software that employs the capabilities of a computer directly and thoroughly to a task that the user wishes to perform System software includes the operating system which couples the computer's hardware with the application software. An operating system (commonly abbreviated OS and O/S) is the software component of a Computer system that is responsible for the management and coordination Typical PC hardware A typical Personal computer consists of a case or chassis in a tower shape (desktop and the following parts Motherboard [12] The purpose of the operating system is to provide an environment in which application software executes in a convenient and efficient manner. [12] In addition to the operating system, system software includes utility programs that help manage and tune the computer. Utility software (also known as service program, service routine, tool, or utility routine) is a type of Computer software. If a computer program is not system software then it is application software. Application software includes middleware, which couples the system software with the user interface. Middleware is computer Software that connects Software components or applications The user interface (or Human Computer Interface) is the aggregate of means by which people&mdash the users '&mdash interact with the System Application software also includes utility programs that help users solve application problems, like the need for sorting.