|execution — выполнение|
to sort data — сортировать данные
linkage editor — программа «Редактор связей»
Read and translate the text.
The operating system is a collection of programs provided by the manufacturer of computer that allow us to translate symbolic programs into machine code, to schedule the jobs the computer is to perform, and to use the computer effectively.
All symbolic programs must be translated to machine code before their instructions can be understood by the control unit. This translation is accomplished through the use of a program called a language processor.
A control program is an operating system with the purpose of controlling the computer. It schedules the activities of the computer and watches over other programs as they run. In order to be able to control the computer, the control program is a main-memory resident, i.e. it is always in the main memory. Control programs go by different names. Common names for control program are supervisor, monitor, executive or, simply, control program.
Service programs are programs that are used to prepare object programs for execution, to store programs on a magnetic disk, and to sort data recorded on secondary storage devices. The first function is provided by a service program called the linkage editor.
The area on a magnetic disk that is used to hold program is called a library. The service program that adds and deletes programs from the library is the librarian.
A third set of service programs is utilities. They provide a means of copying data from any input device in the system and an easy means of moving data files from one secondary storage device to another. The utilities also may be used to print the contents of a file on the line printer.
In most computers, individual instructions are stored as machine code with each instruction being given a unique number (its operation code or opcode for short). The command to add two numbers together would have one opcode, the command to multiply them would have a different opcode and so on. The simplest computers are able to perform any of a handful of different instructions; the more complex computers have several hundred to choose from — each with a unique numerical code. Since the computer’s memory is able to store numbers, it can also store the instruction codes. This leads to the important fact that entire programs (which are just lists of instructions) can be represented as lists of numbers and can themselves be manipulated inside the computer just as if they were numeric data. The fundamental concept of storing programs in the
computer’s memory alongside the data they operate on is the crux of the von Neumann, or stored program, architecture. In some cases, a computer might store some or its entire program in memory that is kept separate from the data it operates on. This is called the Harvard architecture after the Harvard Mark I computer. Modern von Neumann computers display some traits of the Harvard architecture in their designs, such as in CPU caches.
While it is possible to write computer programs as long lists of numbers (machine language) and this technique was used with many early computers, it is extremely tedious to do so in practice, especially for complicated programs. Instead, each basic instruction can be given a short name that is indicative of its function and easy to remember — a mnemonic such as ADD, SUB, MULT or JUMP. These mnemonics are collectively known as a computer’s assembly language. Converting programs written in assembly language into something the computer can actually understand (machine language) is usually done by a computer program called an assembler. Machine languages and the assembly languages that represent them (collectively termed low-level programming languages) tend to be unique to a particular type of computer. For instance, an ARM architecture computer (such as may be found in a PDA or a hand-held videogame) cannot understand the machine language of an Intel Pentium or the AMD Athlon 64 computer that might be in a PC.
Though considerably easier than in machine language, writing a long program in assembly language is often difficult and error prone. Therefore, most complicated programs are written in more abstract high-level programming languages that are able to express the needs of the computer programmer more conveniently (and thereby help reduce programmer error). High level languages are usually “compiled” into machine language (or sometimes into assembly language and then into machine language) using another computer program called a compiler. Since high level languages are more abstract than assembly language, it is possible to use different compilers to translate the same high level language program into the machine language of many different types of computer. This is part of the means by which software like video games may be made available for different computer architectures such as personal computers and various video game consoles.
To schedule the jobs the computer is to perform - планировать задания, которые компьютер должен выполнить; object programs - конечные программы; line printer - линейный принтер; crux of the von Neumann - основная проблема фон-неймановской (вычислительной)
архитектуры, основанной на концепции хранимой программы и последовательных вычислений
Give the Russian equivalents.
The operating system, collection, to translate symbolic programs, to schedule the jobs, machine code, the control unit, language processor, activities of the computer, main-memory resident, supervisor, control program, service programs, object programs, to store the programs, to sort data, secondary storage devices, linkage editor.
Give the English equivalents.
Операционная система, набор, переводить символьные программы, составлять порядок заданий, машинный код, блок управления, языковой процессор, возможности компьютера, резидентная часть программы основной памяти, программа- распределитель, программа управления, сервисные программы, изучаемые программы, хранить программы, сортировать данные, устройства вторичной памяти, программа «Редактор связей».
Fill in the blanks with the appropriate form from the box.
Is used to schedule is called provide must be translated is
1. The operating system a collection of programs. 2. All symbolic
programs to machine code. 3. A control program the activities of the
computer. 4. They are on a magnetic disk that to hold program a
library. 5. Utilities a means of copying data from any input device to
any output device in the system.
Answer the following questions.
1. What is the operating system? 2. Why does it exist? 3. Why must all symbolic programs be translated to machine code? 4. What is a control program? 5. What is the purpose of a control program? 6. What are service programs? 7. What do we call a magnetic disc that is used to hold programs? 8. What are utilities? 9. What is the crux of von Neumann architecture? What do you know about the Harvard architecture? 10. What are mnemonics? 11. Why are complicated programs written in abstract high-level languages? 12. What is the purpose of using a compiler? 13. Is it possible to use different compilers?
Speak on the sets of programs comprising the OS..
Read the text and translate it into Russian without a dictionary. Write a short summary of it.
So long as computers are programmed by human beings, computer programs will be subject to errors. It is programmer’s responsibility to find errors and correct them. The process of finding and correcting errors or bugs as they are often referred to is called testing and debugging. Testing and debugging can be difficult and time-consuming, but the ability to detect and correct programming errors is one of the most important capabilities of a good programmer. A program is considered incomplete until the programmer verifies that it performs as required.
Errors in computer programs are called bugs. Bugs may be benign and not affect the usefulness of the program, or have only subtle effects. But in some cases they may cause the program to “hang” — become unresponsive to input such as mouse clicks or keystrokes, or to completely fail or “crash”. Otherwise benign bugs may sometimes be harnessed for malicious intent by an unscrupulous user writing an “exploit” — a code designed to take advantage of a bug and disrupt a program’s proper execution. Bugs are usually not the fault of the computer. Since computers merely execute the instructions they are given, bugs are nearly always the result of programmer error or an oversight made in the program’s design.
There are two main types of bugs in computer programs. These are coding errors and logic errors. Coding errors typically involve incorrect punctuation, incorrect word-order, undefined terms, or misuse of terms. In case of coding errors the language processor is unable to convert the source program to object program and points them out to the programmer by printing error instructions on the source listing, giving thus hints as to the nature of the error. It is a relatively easy task, therefore, to find and correct this type of errors.
The second type of errors, a logic error, is an error in planning the program’s logic. In this case, the language processor successfully translates the source code into machine code, and the computer follows instructions. The problem is that the logic being followed does not produce the results that were desired.
In order to determine whether or not a logic error exists, the program must be run using sample data with known answers. By running the program and comparing the program’s answers to the known answers, the accuracy of the logic plan can be determined.
Logic errors can be avoided through careful planning of the program logic, but it is the programmer’s responsibility to test thoroughly all the program’s functions, in order to verify that the program performs according to specifications.
Programmer’s responsibility — ответственность программиста; capabilities — потенциальные возможности; benign — незначительный; subtle — едва различимый, трудно уловимый; be harnessed — использоваться; malicious — злонамеренный; to disrupt — разрушать, прерывать; undefined terms —неопределенные термины; sample data — образцы (модели) данных, to verify — проверять.
Lesson 5. Programming languages
Read and translate the text.
A programming language provides a structured mechanism for defining pieces of data, and the operations of transformations that may be carried out automatically on that data. A programmer uses the abstractions present in the language to represent the concepts involved in a computation. These concepts are represented as a collection of the simplest elements available (called primitives).
Programming languages differ from most other forms of human expression in that they require a greater degree of precision and completeness. When using a natural language to communicate with other people, human authors and speakers can be ambiguous and make small errors, and still expect their intent to be understood. However, figuratively speaking, computers do exactly what they are told to do, and cannot “understand” what code the programmer intended to write. The combination of the language definition, a program, and the program’s inputs must fully specify the external behavior that occurs when the program is executed, within the domain of control of that program.
Programs for a computer might be executed without human interaction, or a user might type commands in an interactive session of an interpreter. In this case the “commands” are simply programs, whose execution is chained together. When a language is used to give commands to a software application it is called a scripting language.
Many languages have been designed from scratch, altered to meet new needs, combined with other languages, and eventually fallen into disuse. Although there have been attempts to design one “universal” computer language that serves all purposes, all of them have failed to be
generally accepted as filling this role. The need for diverse computer languages arises from the diversity of contexts in which languages are used.