Understanding Computer Programs: From Simple Instructions to Complex Software
Enviado por Programa Chuletas y clasificado en Inglés
Escrito el en español con un tamaño de 4,97 KB
Computer programs are simply lists of instructions for the computer to execute. These can range from just a few instructions, which perform a simple task, to a much more complex instruction list, which may also include tables of data. Many computer programs contain millions of instructions, and many of those instructions are executed repeatedly. A typical modern PC (in the year 2005) can execute around 3 billion instructions per second. Computers do not gain their extraordinary capabilities through the ability to execute complex instructions. Rather, they do millions of simple instructions arranged by people known as programmers.
Programming Languages: Bridging the Gap Between Humans and Machines
In practice, people do not normally write the instructions for computers directly in machine language. Such programming is time-consuming and error-prone, making programmers less productive. Instead, programmers describe the desired actions in a "high level" programming language, which is then translated into the machine language automatically by special computer programs (interpreters and compilers). Some programming languages map very closely to the machine language, such as Assembly Language (low-level languages); at the other end, languages like Prolog are based on abstract principles far removed from the details of the machine's actual operation (high-level languages). The language chosen for a particular task depends on the nature of the task, the skill set of the programmers, tool availability and, often, the requirements of the customers (for instance, projects for the US military were often required to be in the Ada programming language).
From Programs to Software: Creating Useful Applications
Computer software is an alternative term for computer programs; it is a more inclusive phrase and includes all the ancillary material accompanying the program needed to do useful tasks. For instance, a video game includes not only the program itself, but also data representing the pictures, sounds, and other material needed to create the virtual environment of the game. A computer application is a piece of computer software provided to many computer users, often in a retail environment. The stereotypical modern example of an application is perhaps the office suite, a set of interrelated programs for performing common office tasks.
The Complexity of Software Development
Going from the extremely simple capabilities of a single machine language instruction to the myriad capabilities of application programs means that many computer programs are extremely large and complex. A typical example is Windows XP, created from roughly 40 million lines of computer code in the C++ programming language;[10] there are many projects of even bigger scope, built by large teams of programmers. The management of this enormous complexity is key to making such projects possible; programming languages, and programming practices, enable the task to be divided into smaller and smaller subtasks until they come within the capabilities of a single programmer in a reasonable period.
Software Engineering: Improving the Development Process
Nevertheless, the process of developing software remains slow, unpredictable, and error-prone; the discipline of software engineering has attempted, with some success, to make the process quicker and more productive and improve the quality of the end product.
Computational Models: Applying Programming to Diverse Fields
A problem or a model is computational if it is formalized in such a way that it can be transformed into the form of a computer program. Computationality is a serious research problem of humanistic, social, and psychological sciences. For example, modern systemics, cognitive, and socio-cognitive approaches[11] develop different attempts to the computational specification of their "soft" knowledge.