Computer Program

A computer program is a collection of instructions that describes a task, or set of tasks, to be carried out by a computer. More formally, it can be described as an expression of a computational method written in a computer language. Computer programs, also known as software, may be categorized along functional lines. These functional categories include application software, operating systems, video games, and compilers, among others. Computer programs embedded in hardware devices are called firmware. The formal expression of computational methods in a human-readable computer language is often referred to as source code, while the machine-executable expressions of computational methods are commonly referred to as executables, object code, or simply as binaries – a reference to the binary file format commonly used to store the executable code.


Program execution


A computer program exists in a source code form, viewable as a programming language; as a tokenised form, ready to be interpreted; or in machine code form, ready to be executed. Computer programs can be divided into two categories – system software and application software. System software is the operating system that couples the computer’s hardware with the application software. Application software couples the system software with the user interface.


A computer program is loaded into memory (usually by the operating system) and then executed (“run”), instruction by instruction, until termination, either with success or through software or hardware error. Before a computer can execute any sort of program (including the operating system, itself a program), the computer hardware must be initialized. This initialization is done in modern PCs by a piece of software stored on programmable memory chips installed by the manufacturer, called the BIOS. The BIOS will attempt to initialize the boot sequence, making the computer ready for higher-level program execution.


Programs vs data


The executable form of a program (that is, usually object code) is often treated as being different from the data the program operates on. In some cases this distinction is blurred with programs creating, or modifying, data, which is subsequently executed as part of the same program (this is a common occurrence for programs written in Lisp), see self-modifying code.

Computer Software

Computer software, consisting of programs, enables a computer to perform specific tasks, as opposed to its physical components (hardware) which can only do the tasks they are mechanically designed for. The term includes application software such as word processors which perform productive tasks for users, system software such as operating systems, which interface with hardware to run the necessary services for user-interfaces and applications, and middleware which controls and co-ordinates distributed systems.




Practical computer systems divide software systems into three major classes: system software, programming software and application software, although the distinction is arbitrary, and often blurred.


  • System software helps run the computer hardware and computer system. It includes operating systems, device drivers, diagnostic tools, servers, windowing systems, utilities and more. The purpose of systems software is to insulate the applications programmer as much as possible from the details of the particular computer complex being used, especially memory and other hardware features, and such accessory devices as communications, printers, readers, displays, keyboards, etc.
  • Programming software usually provides tools to assist a programmer in writing computer programs and software using different programming languages in a more convenient way. The tools include text editors, compilers, interpreters, linkers, debuggers, and so on. An Integrated development environment (IDE) merges those tools into a software bundle, and a programmer may not need to type multiple commands for compiling, interpreter, debugging, tracing, and etc., because the IDE usually has an advanced graphical user interface, or GUI.
  • Application software allows end users to accomplish one or more specific (non-computer related) tasks. Typical applications include industrial automation, business software, educational software, medical software, databases, and computer games. Businesses are probably the biggest users of application software, but almost every field of human activity now uses some form of application software. It is used to automate all sorts of functions.

Computer Programmer

A programmer or software developer is someone who programs computers, that is, one who writes computer software. The term computer programmer can refer to a specialist in one area of computer programming or to a generalist who writes code for many kinds of software. One who practices or professes a formal approach to programming may also be known as a programmer analyst, software engineer, computer scientist, or software analyst. A programmer’s primary computer language is often prefixed to the above titles, and those who work in a web environment often prefix their titles with web.


Those proficient in computer programming skills may become famous, though this regard is normally limited to software engineering circles. Many of the most notable programmers are often labeled hackers. Ada Lovelace is popularly credited as history’s first programmer. She was the first to express an algorithm intended for implementation on a computer, Charles Babbage’s analytical engine, in October 1842.


Nature of the work


Computer programmers write, test, and maintain the detailed instructions, called computer programs that computers must follow to perform their functions. Programmers also conceive, design, & test logical structures for solving problems by computer. Many technical innovations in programming – advanced computing technologies & sophisticated new languages and programming tools – have redefined the role of a programmer & elevated much of the programming work done today. Job titles & descriptions may vary, depending on the organization. Many professional programmers also work for consulting companies at client’ sites as contractors. Licensing is not typically required to work as a programmer, although professional certifications are commonly held by programmers. Programming is widely considered a profession. Programmers write programs according to the specifications determined primarily by more senior programmers & by systems analysts. After the design process is complete, it is the job of the programmer to convert that design into a logical series of instructions that the computer can follow.


The programmer codes these instructions in one of many programming languages. Different programming languages are used depending on the purpose of the program. C++ is widely used for both scientific & business applications. Java & PHP are popular programming languages for Web programmers. Programmers generally know more than one programming language and, because many languages are similar, they often can learn new languages relatively easily. In practice, programmers often are referred to by the language they know, e.g. as Java programmers, or by the type of function they perform or environment in which they work: for example, database programmers, mainframe programmers, or Web developers. When making changes to the source code that programs are made up of, programmers need to make other programmers aware of the task that the routine is to perform. They do this by inserting comments in the source code so that others can understand the program more easily. To save work, programmers often use libraries of basic code that can be modified or customized for a specific application.


Testing and debugging


Programmers test a program by running it to ensure that the program works as expected. If errors do occur, the programmer must make the appropriate change & recheck the program until it produces the correct results. This process is called testing & debugging. These are important parts of every programmer’s job. Programmers may continue to fix these problems throughout the life of a program. Updating, repairing, modifying, & expanding existing programs sometimes called maintenance programming. Programmers sometimes contribute to instruction manuals or online help for those who will be using the program. Other times, technical writers do such work.

Computer Programming

Computer programming (often shortened to programming or coding) is the process of writing, testing, and maintaining the source code of computer programs. The source code is written in a programming language. This code may be a modification of existing source or something completely new, the purpose being to create a program that exhibits the desired behavior. The process of writing source code requires expertise in many different subjects, including knowledge of the application domain, specialized algorithms, and formal logic. Within software engineering, programming (the implementation) is regarded as one phase in a software development process. In some specialist applications or extreme situations a program may be written or modified (known as patching) by directly storing the numeric values of the machine code instructions to be executed into memory.

There is an ongoing debate on the extent to which the writing of programs is an art, a craft or an engineering discipline. Good programming is generally considered to be the measured application of all three: expert knowledge informing an elegant, efficient, and maintainable software solution (the criteria for “efficient” and “maintainable” vary considerably). The discipline differs from many other technical professions in that programmers generally do not need to be licensed or pass any standardized (or governmentally regulated) certification tests in order to call themselves “programmers” or even “software engineers“.

Visual Studio History

Visual Studio 97

Microsoft first released Visual Studio in 1997, bundling together many of its programming tools for the first time. Visual Studio 97 was released in 2 editions, Professional & Enterprise. It included Visual Basic 5.0, Visual C++ 5.0, Visual J++ 1.1, & Visual FoxPro 5.0.


Visual Studio 6.0

Released in 1998 & is the last version to run on the Win 9x platform. This version was the basis of Microsoft’s development system for the next 4 years, as Microsoft transitioned their development focus to the .NET Framework. Visual Studio 6.0 was the last version to include Visual Basic as most of its programmers knew it; subsequent versions would include a quite different version of the language based on .NET.


Visual Studio .NET (2002)

Released in 2002 & the biggest change was the introduction of a managed code development environment using the .NET Framework. Programs developed using .NET are not compiled to machine language (like C++ is, for example). This was the first version of Visual Studio to require an NT-based Windows platform. Microsoft introduced C# (C-sharp), a new programming language that targets .NET. It also introduced the successor to Visual J++ called Visual J#. Visual Basic was drastically changed to fit the new framework, and the new version was called Visual Basic .NET. Visual Studio .NET can be used to make applications targeting Windows, Web and portable devices. The internal version number of Visual Studio .NET is version 7.0.


Visual Studio .NET 2003

Microsoft introduced a minor upgrade to Visual Studio .NET in 2003. It included an upgrade to the .NET Framework, version 1.1. Visual Studio 2003 shipped in 4 editions: Academic, Professional, Enterprise Developer, & Enterprise Architect. Microsoft released Service Pack 1 for Visual Studio 2003 on September 13, 2006. The internal version number of Visual Studio .NET 2003 is version 7.1 while the file format version is 8.0.


Visual Studio 2005

Visual Studio 2005, codenamed Whidbey, was released online in October 2005. Microsoft removed the “.NET” moniker from Visual Studio 2005, but it still primarily targets the .NET Framework, which was upgraded to version 2.0. Visual Studio 2005’s internal version number is 8.0 while the file format version is 9.0. Microsoft released Service Pack 1 for Visual Studio 2005 on 14 December 2006. Visual Studio 2005 also added extensive 64-bit support. While the development environment itself is only available as a 32-bit application, Visual C++ 2005 supports compiling for x86-64 (AMD64 and Intel 64) as well as IA-64 (Itanium). Visual Studio 2005 is available in several editions: Express, Standard, Professional, Tools for Office, & a set of 5 Visual Studio Team System Editions. Express Editions were introduced for amateurs, hobbyists, and small businesses, & are available as a free download from Microsoft’s web site. There are Express Editions for each language (Visual Basic, Visual C++, Visual C#, Visual J#), each targeting the .NET Framework on Windows.


Visual Studio 2008

Visual Studio 2008, code-named Orcas, is slated to be launched on February 27, 2008. The latest beta is the Beta 2, released on July 23, 2007, & the 1st public available beta is the September 2006 CTP, released on September 28, 2006. Visual Studio 2008 is focused on development of Windows Vista, 2007 Office System, & Web applications. Among other things, it brings a new language feature, LINQ, a Windows Presentation Foundation visual designer, & improvements to the .NET Framework. Visual Studio 2008 requires .NET Framework 3.5.


Visual Studio Team System

The next major release of Visual Studio Team System is codenamed Rosario & will be released following the Visual Studio 2008 release. In this release, Microsoft plans to deliver new features to build on their existing Application Life-cycle Management (ALM) solution.