Very broadly speaking, there are three classes of computers, according to their size and complexity. These classes are known as mainframes, minicomputers (or minis) and microcomputers (or micros).
Mainframes are large computers, comprising a number of free-standing units. Mainframes are generally housed in specially designed, air-conditioned rooms. Connections between the units are made by wires running beneath the floor of the room. Mainframes are very powerful, and support a number of applications running concurrently. Examples of mainframes are the ICL 2900 series, the IBM 3000 series and the Burroughs B6700 series. Very large mainframes are known as supercomputers. These include the Cyber 205 and the Cray 2.
Minicomputers are smaller than mainframes, with several functional devices mounted in a rack in a single unit. Minicomputers do not generally require an air-conditioned environment. They are often to be found in laboratories, factories and offices. Minicomputers can support more than one application running concurrently, though not as many as mainframes. The Digital Equipment Vax series is the most popular minicomputer. Others are made by Prime, Data General and Hewlett Packard.
Microcomputers are the newest addition to the computer family. They are small and cheap, and are (generally) contained in a few small units. Their distinguishing feature is that processing is carried out on a single microprocessor chip. Although they are very versatile microcomputers can only support one application at any one time. Examples of microcomputers are the IBM PC, the Apple Macintosh and the Research Machines Nimbus.
The classification of computers into mainframes, minis and micros is only very approximate. Computers are getting smaller and more powerful all the time. Micros are being introduced with the capability of minis only a few years old. Minicomputers are incorporating microprocessors to assume the capability of mainframes.
Notes:
ICL — International Computer Ltd. (Британская компания по разработке и производству супер-ЭВМ)
Micros are being introduced with the capability of minis only a few years old. — Сейчас выпускаются микро-ЭВМ с возможностями мини-ЭВМ последнего поколения.
I. Answer the questions:
1.What do all computers consist of? 2.What is the purpose of each functional device? 3.What are the tasks performed by the functional devices (as mentioned in the definition of a computer)? 4.How can all computers be classified according to size and complexity? 5.Why does the writer think that this classification of computers is only very approximate? 6.What is a mainframe computer? 7.What features of a microcomputer differ from those of a mainframe? 8.What is the single most distinctive feature of the microcomputer?
II. Give the main ideas of the text in logical order.
Unit Two
Memorize the key vocabulary:
Solid state adj. — полупроводниковый
Keyboard n. — клавиатура
Magnetic ink character — магнитный знак; знак, написанный магнитными чернилами.
Bar code — штриховой код
Backing store (unit) — дополнительное запоминающее устройство.
Data communications links— каналы передачи данных
Interact v. — взаимодействовать
Disk drive — дисковод
Floppy disk — гибкий диск
Hard disk — жесткий диск
Front-end processor — периферийный процессор
Communications processor — связной процессор
Facilities n. pl. — средство; оборудование
Standby generator — резервный генератор
Plotter n. — графопостроитель, плоттер
Indicate v. — показывать, указывать
Network n. — сеть
Character printer — литерное печатающее устройство
Flexible adj. — гибкий
Operator’s console — пульт управления, консоль оператора
A Typical Medium Sized Computer
A Typical Medium Sized Computer consists of an operator’s console, a processor, a disk drive, a printer and terminals. The computer could be a small mainframe or large mini. The function of each type of unit is now discussed.
Processing of data takes place in the central processing unit, or CPU, now becoming more commonly known as a processor. This consists entirely of solid state electronic components. Some processors, particularly in mainframes, have a front panel which contains switches and lights to indicate the current state of the processor. Linked to the processor are a number of peripheral devices.
Input devices supply data to the processor. Data is entered at a keyboard or read from a variety of media such as magnetic ink characters, optically read characters and bar codes, and sent in a binary code to the processor. Voice input is used on a few systems. Output devices print or display data from the processor. These include various types of printers, plotters and devices which reproduce data on microfilm. Synthesized speech output is beginning to be used.
Terminals are general-purpose input/output devices. They consist of a keyboard for input, and a display screen for output. They sometimes incorporate bar code readers. Terminals may be linked to the processor from long distances.
Backing store is storage of large quantities of data for rapid access by the processor. Magnetic disks and magnetic tapes are the most common storage media. Optical disks are beginning to be used for backing store. Data communications links enable the computer to send data to, and receive data from other computers. The links may be local or long-distance via the telecommunications network. The operator's console allows the person operating the computer to interact with it. In appearance and structure it resembles a terminal.
Although it is made up of separate units, it must be remembered that a computer is a system. In other words, the individual units work together to achieve some common objectives. The step-by-step control of the system is in the hands of the processor. Overall control, however, rests with the person operating the computer.
A Microcomputer
The structure of a typical microcomputer is the following: a keyboard, a processor, a disk drive, a display screen. In some models, the units are separate. In others, the processor and backing store or the processor and keyboard are combined in a single unit. Many micros are connected to a character printer.
Backing store media are small, flexible magnetic disks, called floppy disks or diskettes. In larger models, hard, high capacity Winchester disks are also used.
A Typical Large Mainframe
At the other end of the scale, with processing power (and cost) tens of thousands of times that of a microcomputer, is the large mainframe system or supercomputer.
Supercomputers are characterised by multiple processing units, and a number of different types of peripheral devices. At the centre of the system is a front-end processor. This controls the flow of data between the central processors and the various peripheral devices in the system. A separate communications processor is required to control the flow of data to and from the terminals and data communications links. There may be hundreds of terminals. A backing store control unit controls the passage of data to and from the various backing store units.
The front-end processor, communications processor and backing store control unit are powerful processors in their own right. They have facilities for storing a certain amount of data, routing data to the required channel, and transferring data from one code to another.
An essential unit in all mainframe computers, although it has no data links to other units, is an uninterrupted power supply unit. This device smooths the flow of electricity to the computer. It “irons out” any fluctuations in voltage, and has batteries to ensure that there is no break in the electricity supply to the computer should there be a power failure. The batteries are sufficient to keep the computer going until standby generators can be started.
Notes:
Overall control rests with the person operating the computer — всё управление ЭВМ осуществляется пользователем.
… in their own right — благодаря своим качествам
multiple processing unit — несколько процессоров
It “irons out” any fluctuations in voltage — оно устраняет любые перепады напряжения.
uninterrupted power supply unit — устройство бесперебойного питания
I. Answer the following questions:
1.What are the main units of a typical size computer? 2.What is the purpose of the CPU? 3.What does the CPU consist of? 4. What input devices are mentioned in the text? 5.What do output devices include? 6.What are the most common storage media? 7.Why must a computer be considered as a system? 8.What is the structure of a typical microcomputer? 9.What are supercomputers characterized by? 10.What types of processors are used in supercomputers? 11.What is an essential unit in all mainframe computers? 12.Why is an uninterrupted power supply unit so essential?
II. Give the main ideas of the text in logical order.
III. Translate in writing:
Сверхмощные компьютеры относятся к классу сверхпроизводительных машин, способных выполнять миллионы операций в секунду.2. Мини-ЭВМ широко используются благодаря малым габаритам и низкой стоимости. 3. Современные микрокомпьютеры могут выполнять более десяти миллиардов операций в секунду, и это не предел. 4. Пульт оператора позволяет пользователю взаимодействовать с компьютером. 5. Дополнительная память обладает повышенной емкостью и используется для расширения оперативной памяти. 6. Гибкие диски используются как внешняя память пульта ЭВМ для хранения микропрограмм управления. 7. Терминал имеет клавиатуру для общения с ЭВМ в режиме диалога. 8. Терминал обеспечивает возможность обмена данными по каналам связи с удаленной ЭВМ. 9.ЭВМ используется для переработки информации; при этом имеется в виду не техническое устройство ЭВМ, а ЭВМ вместе с заложенной в ней программой. 10. В центре внимания специалистов находится разработка ЭВМ с параллельной обработкой информации, когда множество вычислительных операций выполняются одновременно. 11. Задача новых машин заключается не только в расчетах, сколько в том, чтобы делать заключения, обосновывать, строить гипотезы и учиться. 12. Голографическая (holographic) память обладает большими возможностями, одной из которых является то, что любую информацию можно отыскать за доли секунды. 13. Скорость современных ЭВМ — это скорость обращения к памяти.
14.Резервный генератор используется в случае остановки подачи питания от основной электросети. 15.Если информация находится в конце магнитной ленты, то на её поиск тратится много времени. 16.Графопостроитель осуществляет вывод данных из вычислительной машины в графической форме на бумажный носитель.
Topics for discussion.
A typical medium size computer
A microcomputer
A typical supercomputer
Section 3
Algorithms.
Unit one.
Memorize the key vocabulary:
Eliminate v. — устранять, исключать, уничтожать
Execute v. — выполнять
Furthermore adv. — кроме того, более того
Concept n. — понятие, идея, концепция
Appriciate v. — ценить, оценивать (по достоинству)
Equation n. — уравнение, равенство
Apply v. — применять, употреблять
Employ v. — использовать, применять
Procedure n. — процедура
Property n. — свойство
Notion n. — понятие, представление, идея
Experience n. — опыт
Solvability n. — разрешимость
Decision-making — принятие решения
Rapid adj. — быстрый
Represent v. — представлять
Representation n. — представление, утверждение
Prove v. — доказать, доказывать
Knowledge n. — знание, познание, эрудиция
Twenty or more years ago the word "algorithm" was unknown to most educated people; indeed, it was scarcely necessary. The rapid rise of computer science, which has the study of algorithms as its foca1 point has changed all that; the word is now essential. There are some other words that almost, but not quite, capture the concept that is needed: procedure, recipe, process, routine, method, rigmarole. Like these things an algorithm is a set of rules or directions (instructions) for getting a specific output from a specific input. The distinguishing feature of an algorithm is that all vagueness must be eliminated; the rules must describe operations that are so simple and well-defined that they can be executed by a machine. Furthermore, an algorithm must always terminate after a finite number of steps.
A computer programme is the statement of an algorithm in some well-defined language, although the algorithm itself is a mental concept that exists independently of any representation. Anyone who has prepared a computer programme will appreciate the fact that an aglorithm must be very precisely defined, with attention to detail that is unusual in comparison with other things people do. Programmes for numerical problems were written as early as 1800 B. C. when Babylonian mathematicians gave rules for solving many types of equations. The rules were as step-by-step procedures applied systematically to particular numerical examples. The word "algorithm" itself originated in the Middle East, although at a much later time. Curiously enough it comes from the Latin version of the last name of the Persian scholar Abu Jafar Mohammed ibn Musa al-Khowaresmi (Algorithmi) whose textbook on arithmetic (c. 825 A. D.) employed for the first time Hindu positional decimal notation and gave birth to algebra as an independent branch of mathematics. It was translated into Latin in the 12th century and had a great influence for many centuries on the development of computing procedures. The name of the textbook's author became associated with computations in general and used as a term "algorithm".
Originally algorithms were concerned solely with numerical calculations; Euclid's algorithm for finding the greatest common divisor of two numbers – is the best illustration. There are many properties of Euclid's powerful algorithm which has become a basic tool in modern algebra and number theory. Nowadays the concept of an algorithm is one of the most fundamental notions not only in mathematics but in science and engineering. Experience with computers has shown that the data manipulated by programmes can represent virtually anything. In all branches of mathematics the task to prove the solvability or unsolvability of any problem requires a precise algorithm. In computer science the emphasis has now shifted to the study of various structures by which information can be represented and to the branching or decision-making aspects of algorithms, which allow them to fall on one or another sequence of operations depending on the state of affairs at the time. It is precisely these features of algorithms that sometimes make algorithmic models more suitable than traditional mathematical models for the representation and organization of knowledge.
Notes:
rigmarole — пустая болтовня, вздор
It is precisely these features of algorithms that sometimes make algorithmic models more suitable than … — именно эти особенности алгоритмов делают алгоритмические модели более подходящими, чем …
as early as 1800 B.C. — еще в 1800 году до нашей эры.
c. 825 A.D. (circa 825 anno Domini) — около 825 года нашей эры.
branching — выбор, переход, передача управления.
I. Answer the following questions:
1.Why has the word “algorithm” become essential? 2.What are the distinguishing features of an algorithm? 3.What is the relationship between an algorithm and a computer program? 4.What were the first programs written for? 5.What is the origin of the word “algorithm”? 6.Why was the role played by Al-Khowaresmi’s book so important? 7.How are algorithms used in mathematics? 8.How are algorithms used in computer science?
II. Give the main ideas of the text in logical order.
III. Translate in writing.
Что такое алгоритм?
Слово “алгоритм” происходит от имени персидского математика Хорезми (по-арабски Аль-Хорезми) который в IX в н.э. разработал правила четырех арифметических действий над числами в десятичной системе счисления. Совокупность этих правил в Европе стали называть “алгоризм”. Позже это слово трансформировалось в “алгоритм” и стало обозначать отдельные правила определенного вида (и не только правила арифметических действий). В течение долгого времени его использовали не только математики для обозначения правил решения различных задач. В настоящее время словом “алгоритм” пользуются не только математики. Его стали использовать в самых различных сферах, и теперь алгоритм понимается как точно сформулированное правило, с помощью которого получают необходимый результат.
Unit Two
Memorize the key vocabulary
rigorous adj. — строгий, точный
consequence n. — следствие, последствие
acknowledge v. — признавать, сознавать
however adv. — однако, тем не менее
achievement n. — достижение
due to — благодаря, из-за
proof n. — доказательство
apparently adv. — очевидно, несомненно
restrict v. — ограничивать
identify v. — устанавливать тождество, отождествлять
occur v. — случаться, происходить
in terms of — с точки зрения; в терминах …
thus adv. — таким образом, так
reason v. — рассуждать
cell n. — ячейка, элемент
boundary n. — граница
content n. — содержание; pl — содержимое
The concept of algorithms is perhaps almost as old as human civilization. The famous Euclid's algorithm is more than 2000 years old. Angle trisection, solving diophantine equations are some well known examples of algorithmic questions. However, until the 1930s the notion of algorithms was used informally (or rigorously but in a limited context). It was a major triumph of logicians and mathematicians of this century to offer a rigorous definition of this fundamental concept. The revolution that resulted in this triumph was a collective achievement of many mathematicians, notably Church, Gőodel, Kleene, Post, and Turing. Of particular interest is a machine model proposed by Turing in 1936, which has come to be known as a Turing machine .
This particular achievement had numerous significant consequences. It led to the concept of a general-purpose computer or universal computation, a revolutionary idea originally anticipated by Babbage in the 1800s. It is widely acknowledged that the development of a universal Turing machine was prophetic of the modern all-purpose digital computer and played a key role in the thinking of pioneers in the development of modern computers such as von Neumann . From a mathematical point of view, however , a more interesting consequence was that it was now possible to show the nonexistence of algorithms, hitherto impossible due to their elusive nature. In addition, many apparently different definitions of an algorithm proposed by different researchers in different continents turned out to be equivalent. This equivalence led to the widely held hypothesis known as the Church-Turing thesis that mechanical solvability is the same as solvability on a Turing machine.
Formal languages are closely related to algorithms. They were introduced as a way to convey mathematical proofs without errors. Although the concept of a formal language dates back at least to the time of Leibniz, a systematic study of them did not begin until the beginning of this century. It became a vigorous field of study when Chomsky formulated simple grammatical rules to describe the syntax of a language.
Grammars and formal languages entered into computability theory when Chomsky and others found ways to use them to classify algorithms.
Computability and a Universal Algorithm
Turing's notion of mechanical computation was based on identifying the basic steps of such computations.He reasoned that an operation such as multiplication is not primitive because it can be divided into more basic steps such as digit-by-digit multiplication, shifting, and adding. Addition itself can be expressed in terms of more basic steps such as add the lowest digits, compute, carry, and move to the next digit, etc.Turing thus reasoned that the most basic features of mechanical computation are the abilities to read and write on a storage medium (which he chose to be a linear tape divided into cells or squares) and to make some simple logical decisions. He also restricted each tape cell to hold only one among a finite number of symbols (which we call the tape alphabet).
The decision step enables the computer to control the sequence of actions. To make things simple, Turing restricted the next action to be performed on a cell neighboring the one on which the current action occurred. He also introduced an instruction that told the computer to stop. In summary, Turing proposed a model to characterize mechanical computation as being carried out as a sequence of instructions of the form: write a symbol (such as 0 or 1) on the tape cell, move to the next cell, observe the symbol currently scanned and choose the next step accordingly, or stop.
These operations define a language we call the GOTO language. Its instructions are
PRINT i (i is a tape symbol)
GO RIGHT
GO LEFT
GO TO STEP j IF i IS SCANNED
STOP
A program in this language is a sequence of instructions (written one per line) numbered 1 – k. To run a program written in this language, we should provide the input. We will assume that the input is a string of symbols from a finite input alphabet (which is a subset of the tape alphabet), which is stored on the tape before the computation begins. How much memory should we allow the computer to use ? Although we do not want to place any bounds on it, allowing an infinite tape is not realistic. This problem is circumvented by allowing expandable memory. In the beginning, the tape containing the input defines its boundary. When the machine moves beyond the current boundary, a new memory cell will be attached with a special symbol B (blank) written on it. Finally, we define the result of computation as the contents of the tape when the computer reaches the STOP instruction.
Notes:
angle trisection — трисекция угла
hitherto (adv) — (книжное) до сих пор, до настоящего момента
in summary — в итоге
I. Answer the following questions:
1.When did the concept of algorithm appear? 2.What role did Turing machine play in the history of science? 3.How are formal languages related to algorithms? 4.What was Turing’s notation of mechanical computation? 5.What are the most basic features of mechanical computation? 6.How is a program run in the Goto language?
II.. Give the main ideas of the text in logical order.
III. Translate in writing.
Эффективный алгоритм — это алгоритм, допускающий эффективную вычислительную реализацию. Изучение возможности существования эффективных алгоритмов вычисления конкретных величин составляет основу теории алгоритмов. За исключением простейших случаев, доказать корректность алгоритма или даже описать результат действия алгоритма довольно трудно. На практике приходится ограничиваться проверкой правильности алгоритма. Такая проверка позволяет удостовериться, что алгоритм обеспечивает выполнение требуемых вычислений. Она включает тестирование программы в различных условиях постановки задачи для приобретения уверенности в том, что алгоритм нормально работает во всех контрольных примерах.
IV. Topics for discussion:
The history of an algorithm
Algorithm of problem solving
Section 4
Data Structures
Unit one
Memorize the key vocabulary
Complicated adj. — сложный
Item n. — единица
Pointer n. — указатель, описатель.
String n. — строка
Either … or … — либо … либо … ; или … или …
Marker n. — маркер, метка
Array n. — массив
Dimension n. — размерность
Two-dimensional adj. — двумерный
Blank n. — пробел, пропуск, пустое место
Stack n. — стек, пакет
Queue n. — очередь
Frequent adj. — частый
Intermediate adj. — промежуточный
Data Structures
Most of the information we encounter in everyday life is structured in some way. The commonest example is the words of our language, which are linked together in phrases, sentences and other more complex structures. The rules for constructing these structures are extremely complicated, yet we apply them by intuition.
Other examples of structured information include dictionaries, telephone directories and encyclopedias. These are all large stores of information which would be useless if the information were not strictly arranged according to a few simple rules. The structure of a collection of information makes it easy to locate individual items of information, and to insert new items, or delete items. The same reasoning applies to structured information stored in computers.
Pointers
A pointer is a data item which indicates the location of another data item. It may be thought of as an arrow.
Pointers are used to build data structures. They provide the links which join elements of the structure. Of particular significance are pointers to the front and back of a data structure. Occasionally it is required that a pointer does not point to anything; in this situation, the pointer is said to have a null value.
Strings
A string is a sequence of characters regarded as a single data item. Strings may be of fixed or variable length. The length of a string is indicated either by the number of characters in the string placed at the front of the string, or by a special character called an end-of-string marker at the end. The following example shows these two methods of representing the same string:
10 CAPITAL 194 CAPITAL194#
Operations on strings are of two types: operations which join two or more strings to produce a single string, and operations which divide a string to produce two or more sub-strings.
Arrays
An array is a set of data items of identical types, stored together. The number of elements in the array is fixed when the array is created. Each element is accessed by an index, which indicates the position of the element in the array.
For example, if the array BEATLES has elements as follows:
BEATLES: JOHN
PAUL
GEORGE
RINGO
then the element with index value 3, BEATLES(3) is the name GEORGE.
Arrays can have more than one dimension. A two-dimensional array may be thought of as having rows and columns like a matrix. Two indices are required to locate an item in the array, corresponding to row and column indices in a matrix. For example, the state of a game of noughts and crosses may be represented by a two-dimensional array, GAME, with three rows and three columns:
GAME: OXO
XXO
OOX
If the top left element is GAME(1,1), then the 0 in the third column of the second row is GAME(2,3) and the blank element is GAME(3,1).
Static and Dynamic Data Structures
An array is a static data structure, that is to say, it stays the same size once it has been created. Data structures which change in size once they have been created are called dynamic data structures. A string can be a static or a dynamic data structure. The structures introduced in the remainder of this chapter are dynamic data structures. They generally require pointers for their implementation.
Stacks
A stack is a collection of data items which may only be accessed at one end, called the top of the stack.
Only two operations may be carried out on a stack. Adding a new item, called pushing or stacking the item, involves placing it on top of the stack. Removing an item involves popping it from the stack.
If a number of items are pushed onto a stack, and then popped from the stack, the last item added will be the first one removed. For this reason a stack is called a last-in-first-out (LIFO) stack. Other names for a stack are push-down stack and push-down list.
When a stack is stored in a computer memory, the elements do not move up and down as the stack is pushed and popped. Instead, the position of the top of the stack changes. A pointer called a stack pointer indicates the position of the top of the stack.
Another pointer is used to indicate the base of the stack. This pointer, called the stack base, keeps the same value as long as the stack is in existence.
The stack is one of the most important data structures in computing. Stacks are used in calculations, for translating from one computer language to another, and for transferring control from one part of a program to another. Most modern processors include a stack pointer as an architectural feature and some regard their entire memory as a set of stacks.
In spite of the American origins of many ideas associated with computers, that great British institution, the queue, has found its way into the theory of computing. Everyone knows how a queue works: newcomers join at the rear, service is provided at the front, and no pushing-in is allowed. Exactly the same rules apply to queues of data stored in a computer memory: data items are added at the back and removed from the front. A queue is a first-in-first-out (FIFO) data structure.
Although queues are used slightly less frequently than stacks, they do have a variety of applications. These include queuing data items in transit between a processor and a peripheral device or intermediate points in a data communications network.
Notes:
The pointer is said to have a null value — говорят, что показатель равен нулю.
a game of noughts and crosses — “крестики-нолики” (игра)
that is to say — то есть
first-in-first-out data structure — структура данных последовательного обслуживания.
I. Answer the following questions.
1.Why is it useful to think of a pointer as an arrow? 2.What do you understand by the “null value”? 3.How do we indicate the length of a string? 4.Is it possible to vary the number of elements in an array? 5.What do dynamic structures need in order to implement them successfully? 6.What are the different uses of stacks? 7.What is pushing or stacking and popping ? 8.What two applications of queues do you know?
II. Give the main ideas of the text in logical order.
Unit Two
Memorize the key vocabulary:
Implement v. — выполнять, осуществлять,обеспечивать выполнение
Artificial intelligence (AI) — искусственный интеллект
Research n. — исследование, изучение, изыскание
Tree n. — дерево, древовидная структура
Hierarchy n. — иерархия
Node n. — вершина, узловая точка.
Root n. — корень
Module n. — модуль, блок
Recursive adj. — рекурсивный
Integer n. — целое число
Lists
A list is a set of data items stored in some order. Data items may be inserted or deleted at any point in the list. In this respect, a list is less restrictive than a stack or queue. The simplest way of implementing a list makes use of a pointer from each item to the one following it in the list. There is also a pointer to the start of the list, while the last item in the list has a null pointer.
A data structure of this type is also known as a linked list. A list element consists of a data item and its pointer. In many applications a list element contains a number of data items. Since elements can easily be added to the rear or removed from the front of the linked list, this structure may also be used to implement a queue. Inserting an element into a list is achieved by adjusting the pointers to include the new element.
Data items in a list are in order, in the sense that one data item is behind another in the list. Lists are, however, frequently used in cases where the data items are in numerical or alphabetical order. Such lists are called ordered lists. Lists are very useful for storing ordered sets of data, if insertions and deletions of data items are frequent.
Data items may themselves be entire lists. Lists of this nature are widely used in artificial intelligence research, and form the basis of the programming language Lisp.
A tree is a structure implying a hierarchy, with each element of the tree being linked to elements below it.
Each data item in a tree is at a node of the tree. The node at the top of the tree is called the root. Each node may be connected to one or more subtrees, which also have a tree structure. A node at the bottom of the tree, which has no subtrees, is called a terminal node, or a leaf.
A number of operations may be carried out on trees. Two binary trees may be joined to an additional node, which becomes the root of a larger binary tree, with the original trees as subtrees. A tree may be traversed in several ways. Traversing a tree is accessing its elements in a systematic way.
Trees have a number of applications in computing. The modules of many programs are linked together in a tree structure. Trees are also used to represent arithmetic expressions, and for sorting and searching. Some computers regard their entire memory as if it were partitioned into a tree structure.
The essential feature of a tree is that each node is connected to subtrees, which themselves have the structure of trees. In other words, wherever you are in a tree, the structure 'below' you is a tree. In this sense a tree is a recursive data structure, and can be manipulated by recursive programs. This is the property of trees which makes them so useful from a computing point of view.
A number of program languages require that the type of each data item be declared before the data item is used in a program. A data item may be an integer, an array, or a list, to name just a few examples.
Notes:
a number of — ряд
linked list — связной лист, связанный лист
I. Answer the following questions:
1.What is a list? 2.What is the simplest way of implementing a list? 3.What does a list element consist of? 4. In what cases are lists used? 5.What is a tree? 6. What are trees used for? 7. What is an essential feature of a tree?
II. Give the main ideas of the text in logical order.
III. Translate in writing.
Множества значений или переменных с одним общим именем называются структурированными (составными) типами. Имеется несколько способов построения составных типов, каждый из которых отличается способом обращения к отдельным компонентам и, следовательно, способом обозначения компонент, входящих в данные структурированных типов.
По способу организации и типу компонент выделяют четыре основные разновидности структурированных типов:
регулярный тип (массивы);
комбинированный тип (записи);
файловый тип (файлы);
множественный тип (множества).
Использование структурированных типов данных позволяет решать разнообразные и достаточно сложные задачи.
В задачах, которые мы рассматривали, данные поступали с клавиатуры, а результаты выводились на экран дисплея. Поэтому ни исходные данные, ни результаты не сохранялись. Всякий раз при выполнении одной и той же программы, особенно во время ее отладки, приходилось заново вводить исходные данные. А если их очень много? Тогда удобно оформить исходные данные и результаты в виде файлов, которые можно хранить на диске точно так же, как и программы.
Файл – это область памяти на внешнем носителе, в которой хранится некоторая информация. В языке Паскаль файл представляет собой последовательность элементов одного типа. Мы будем работать только с т.н. файлами последовательного доступа. В таких файлах, чтобы получить доступ к элементу, необходимо последовательно просмотреть все предыдущие.
Файл последовательного доступа можно сравнить с магнитной лентой, на которой записаны песни. Для того чтобы найти конкретную песню, надо перемотать кассету на начало и прослушивать песню за песней, до тех пор, пока не будет найдена нужная.
Зачем нужны файлы ? Объем информации, которую можно сохранить в файле, очень велик. Он значительно больше, чем объем, который можно хранить в оперативной памяти, например, при использовании массивов.
IV. Topics for discussion.
If the array ROYAL FAMILY has elements as follows:
Elizabeth
Philip
Charles
Andrew
Anne
Edward
name the element with index value 5 and represent it in the standard form.
The operations known as pushing or stacking, and popping.
Different uses of stacks.
Two applications of queues.
Section 5
High-level languages
Unit One
Memorize the key vocabulary:
High-level language — язык высокого уровня
Low-level language — язык низкого уровня
Convenient adj. — удобный, подходящий, пригодный
Means n. — средство, pl средства
Portable adj. — переносной, мобильный
Because of adv. — благодаря, из-за
Specify v. — точно определять, устанавливать, уточнять
Efficiency n — эффективность, продуктивность, призводительность
Efficient adj. — эффективный, действенный
Reserved word — зарезервированное слово
Permit v. — позволять, разрешать, допускать
Abbreviation n. — сокращение
Measure v. — измерять, мерить
Block-structured language — язык блочной структуры
Call n. — вызов
Variable n. — переменная
Constant n. — постоянная
Identifier n. — идентификатор
Scope n. — область (действия)
What is a High Level Language?
A high level language is a problem oriented programming language, whereas a low level language is machine oriented. In other words, a high level language is a convenient and simple means of describing the information structures and sequences of actions required to perform a particular task.
A high level language is independent of the architecture of the computer which supports it. This has two major advantages. Firstly, the person writing the programs does not have to know anything about the computer on which the program will be run. Secondly, programs are portable, that is, the same program can (in theory) be run on different types of computers. However, this feature of machine independence is not always achieved in practice.
In most cases, programs in high level languages are shorter than equivalent programs in low level languages. However, conciseness can be carried too far, to the point where programs become impossible to understand. More important features of a high level language are its ability to reflect clearly the structure of programs written in it, and its readability.
High level languages may be broadly classified as general-purpose or special-purpose. General- purpose languages are intended to be equally well suited to business, scientific, engineering or systems software tasks. The commonest general-purpose languages are Algol 68 and PL/1. The language Ada also falls into this category. Because of their broad capabilities, these languages are large,
and relatively difficult to use.
The commonest categories of special-purpose languages are commercial, scientific and educational. In the commercial field, Cobol still reigns supreme, while Fortran is still the most widely used scientific language. In the computer education field, Basic is widely used in schools, with Logo and Prolog gaining popularity. Pascal is the most popular language at universities. Pascal is a powerful general-purpose language in its own right.
Another way of classifying high level languages is as procedural and declarative languages. Procedural languages state how a task is to be performed, often breaking programs into procedures, each of which specifies how a particular operation is to be performed. All the early high level languages are procedural, with Algol, Pascal and Ada as typical examples.
Declarative programming languages describe the data structures and relationships between data relevant to a particular task, and specify what the objective of the task is. The process by which the task is to be carried out is not stated explicitly in the program. This process is determined by the language translation system. Prolog is an example of a declarative programming language.
The defining characteristics of a high level language are problem-orientation and machine independence.
The first objective of a high level language is to provide a convenient means of expressing the solution to a problem. There are two other common ways of doing this - mathematics, and natural languages, such as English. Most high level languages borrow, without much modification, concepts and symbols from mathematics. The problem with natural languages is that in their full richness and complexity, they are quite impossible to use to instruct a computer. Nevertheless, high level languages use words from natural languages and allow these words and mathematical symbols to be combined according to various rules. These rules create the structure of programs written in the language. The result, in a good high level language, is a clear structure, not too different from our
customary ways of thinking and expressing ourselves.
This discussion leads to the second objective of high level languages - simplicity. Simplicity is achieved by a small set of basic operations, a few clear rules for combining these operations, and, above all, the avoidance of special cases.
The third objective of a high level language is efficiency. Programs in the language must be able to be translated into machine code fairly quickly, and the resulting machine code must run efficiently. This objective almost always conflicts with the first two. Most high level languages reflect a compromise between these objectives.
The final objective is readability of programs. A good high level language should enable programs to be written which are clear to read without additional comments. Regrettably, some high level languages ignore this objective altogether.
Features of High Level Languages
The character set used by a language is the set of all characters which may be used in programs written in the language. Almost all languages use letters and decimal digits.
Most high level languages use reserved words. These are words which have a specific meaning in programs, and may not be used by the programmer for any other purpose. For example, in Pascal, reserved words include read, if... then .. else and write. Some languages permit abbreviations of reserved words. The size and complexity of a language can be measured by the number of reserved words it uses. For example, Occam has 28 reserved words, while Ada uses more than sixty.
Perhaps the most important feature of a high level language is the way in which programs in it are structured. The structure of a program is specified by a set of rules, called rules of syntax. Different languages have different ways of expressing these rules. In some, the rules are written in concise English.Others use syntax diagrams, while others (notably Algol) use a notation originally called Backus-Naur form, now known as BNF.
Much attention has been devoted, in the development and use of high level languages, to the way in which programs are split up into blocks or modules, each module doing a specific task. In some languages, notably Fortran, these blocks are
called subroutines, in others such as Algol and Pascal, these blocks are called procedures or functions. Because of the careful structuring of programs
into blocks which they permit, Algol, Pascal and similar languages are called block-structured languages.
Procedures, functions or subroutines are activated via calls from other parts of the program. For example, if a program contains a function to calculate the square root of a given number, this function is called every time a square root is required in the rest of the program. Most languages permit a procedure or function to call itself, a feature known as recursion. This is an extremely powerful feature for handling such data structures as lists, stacks and trees, and for such tasks as analysing the structure of arithmetic expressions.
An important aspect of high level languages is the way in which they handle the data items and data structures used in a program. Broadly speaking, data items fall into two categories: variables, which can change their value during the running of a program, and constants, which keep the same value. In most program languages, variables are given names, or identifiers. In some languages, such as Fortran and Basic, constants are referred to by their values, while in others, such as Algol and Pascal, constants are also given identifiers.
Some program languages require that all variables be declared before they are used. Generally, variables are declared by listing them at the start of the procedure or subroutine in which they are to be used. An attempt to use a variable which has not been declared results in an error.
This gives rise to the idea of the scope of a variable. The scope of a variable is the part of a program in which it may be used. Variables which are declared for use in one procedure only are called local variables. Their scope is limited to that procedure. Variables which are declared for use in the whole program are called global variables. Their scope is the whole program. The intention of providing each variable with a scope is to enable a program to be broken up into 'watertight' blocks, or modules. Each block uses only the information it requires. This simplifies the task of designing, writing and testing programs, and limits the effects of errors.
Almost all high level languages include the notion of data types. In Basic language the standard data types are numeric and character strings. These types can be incorporated into arrays, which are tables of items of the same type. In most high level languages, numbers can be integers or real numbers (generally stored in floating point form). PL/I even permits the number of significant figures in a number to be declared. Another common standard data type is Boolean, with the range of values 'true' and 'false'. Data types can contain single elements, or be structures such as arrays, stacks, lists, trees, etc.
Notes
Cobol still reigns supreme … — Кобол все еще безраздельно господствует …
Basic is widely used in schools, with Logo and Prolog gaining popularity — Бейсик широко используется в школах, и все большую популярность завоевывают языки Лого и Пролог
in its own right — благодаря своим свойствам
the resulting machine code — конечный машинный код
Backus-Naur form — нотация Бэкуса-Наура
“watertight” — зд. ясный, недвусмысленный
I. Answer the following questions:
1.What is the relationship of the high-level language to the computer which supports it? 2.What are the major advantages of this relationship? 3.What can happen when a high-level language becomes too brief? 4.What problems are associated with general purpose languages? 5.What is significant about procedural languages? 6.In what way do declarative languages differ from procedural languages? 7.What are four objectives of high-level languages? 8.By what means do high level languages express solutions to problems? 9.What can you find in the character set of any language? 10.How are the rules of syntax expressed? 11.What is the powerful feature for dealing with data structures in many languages? 12.In a language which requires variable declaration, what would happen if you tried to use a variable which had not been declared?
II Give the main ideas of the text in logical order.
III Translate in writing:
Для того, чтобы решить какую-либо задачу на компьютере, необходимо предоставить алгоритм решения этой задачи в таком виде, который будет понятен вычислительной машине — в виде последовательности машинных команд. Каждая команда соответствует только одному элементарному действию. Чтобы написать такую последовательность инструкций, программист тратит много времени и сил. И тут программисту приходят на помощь специальные языки программирования, которые помогают автоматизировать этот процесс.
Языки программирования — это специально разработанные искусственные языки для записи алгоритмов. Каждый язык программирования имеет свой алфавит. Буквами в этом алфавите являются символы, которые используют для записи отдельных слов и фраз. В каждом из этих языков действует своя грамматика. Языки могут отличаться друг от друга набором слов. Предложения в этих языках называются операторами. В отличие от естественных языков, языки программирования имеют абсолютно детерминированные правила.
Языки программирования можно разделить на две группы: языки высокого уровня и языки низкого уровня. Языки низкого уровня (по другому ,ассемблеры) являются машинозависимыми, в то время, как языки высокого уровня не зависят от аппаратного обеспечения. К языкам высокого уровня относятся такие языки как Алгол, Кобол, Фортран, Паскаль, Си и др. Среди них выделяют языки близкие друг к другу по назначению, например, для решения вычислительных или экономических задач.
ЭВМ не может понять языки программирования, если их не перевести на язык машинных кодов. Для этого существуют специальные программы-переводчики. Такие программы называются компиляторами.
Unit two
Memorize the key vocabulary:
Evaluate v. — оценивать
Statement n. — утверждение; оператор
Matrix n. pl matrices — матрица
Assignment n. — присваивание
Vary v. — менять(ся), изменять(ся); разнообразить
Operating system — операционная система
Layout n. — размещение, расположение; схема расположения; чертеж; разбивка (программы)
Simplify v. — упрощать
True adj. — истинный
False adj. — ложный
Sophisticated adj. — сложный
Assembly language — язык ассемблера
Specification language — язык спецификаций
Software engineering — разработка программного обеспечения; программирование.
Approach n. — подход
Obsolete adj. — устаревший
Operations
The operations included in a high level language enable data items and data structures to be manipulated in various ways. Almost all program languages permit arithmetic operations. Many allow expressions of any degree of complexity to be evaluated in one statement. Most languages include the logical operations AND, OR and NOT, again combined to form expressions if necessary. Some program languages, notably Fortran and PL/1, have instructions to manipulate entire data structures such as matrices. In these languages, multiplying two matrices, for example, requires only one program instruction.
All program languages have rules of precedence which specify the order in which operations are carried out within the same expression. Arithmetic operations follow the usual rules: multiplication before addition, etc., but languages differ over the precedence of logic operations over arithmetic operations in some expressions.
The process whereby a variable takes on a value is called assignment. Different languages express assignment in different ways.
Input and Output
High level languages vary considerably in their treatment of input and output. The intention in all cases is to hide from the programmer the problems which surround input and output at machine level, although in many cases these problems are taken care of by the operating system.
Most high level languages provide a simple, logical method of transferring data to or from the computer. Some languages, notably Fortran and Cobol, pay considerable attention to the layout, or format of the data. Other languages deliberately 'play down' this aspect, to simplify matters for the programmer.
Control Structure
All program languages, both low level and high level, have ways of transferring control from one part of a program to another. In procedural high level languages, there are generally three aspects of the question: sequencing, looping and branching. Control is transferred to procedures and functions by calling ( see previous section).
Sequencing is the flow of control from one instruction to the next. In most program languages this is achieved by writing instructions one after the other, separated by semi-colons, or on consecutive lines. Basic language is an exception, with instructions being executed in order of line number.
Looping is concerned with repeating instructions or groups of instructions. Most high level languages have instructions for performing loops a certain number of times, using one variable as a counter. Some languages allow loops to be repeated while some condition is true, or until a condition becomes true.
Branching concerns transferring control to one part of a program if a condition is true, and to another if the condition is false. The most general form of a branching instruction is as follows:
if then
else
endif
A more sophisticated version of the conditional branching instruction is available in many languages. This is the multi-way branch instruction. In Pascal, the multi-way branch is implemented as the case statement. For example:
case operator of
add : a:=a+b;
subtract : a:=a-b;
multiply : a:=a*b;
end;
Depending on the value of the variable operator, one of the statements is executed.
An Assessement of High Level Languages
A high level language is a programming language which is problem-oriented and machine independent, and has the objectives of a clear structure, simplicity, efficiency and readability. How well do high level languages match these criteria in practice?
Problem-orientation is generally well achieved, especially in special-purpose languages such as Cobol and in block-structured languages like Pascal. Machine independence does not score so highly. A 'standard' version of most popular high level languages has been published, but machine-dependent features persist in most implementations. Basic language is particularly bad, with different computer manufacturers offering different enhancements to the language on their own computers.
A clear structure of programs is achieved on many high level languages. Perhaps the best example of this is the fact that several large operating systems have been successfully written in high level languages. Simplicity is certainly possible in most high level languages, but it is limited by the complexity of the problem being programmed. Program readability is still very much a matter for the individual programmer.
The main success of high level languages has been their transformation of the art (or science...) of computer programming from the domain of a few highly skilled computer experts to a much wider group of people, including researchers in a wide range of fields, some businessmen and school pupils. With computers becoming cheaper, and programmers' time becoming more expensive, high level languages are appearing more and more cost-effective, at least from the point of view of the data processing-system as a whole.
However, there is still a place for programming in low level languages. Systems software must still be written, at least in part, in a low level language. Many microcomputers are too small to support anything more than a simple subset of a high level language. If a microprocessor is to be dedicated to a specific task, such as word processing, all the software required is usually written in assembly language.
At present there is a move towards an even higher level of programming languages, which might be called specification languages, and an increasing use of software development tools. The profession of programming is evolving into software engineering as the fifth generation of computers approaches. These developments are challenging the current dominance of high level languages for the development of applications software, and may make them obsolete during the next decade.
Notes:
… languages differ over the precedence of logic operations over arithmetic operations in some expressions — … языки различаются по приоритету логических операций перед арифметическими в некоторых выражениях.
“pay down” — преуменьшать
consecutive line — последующая строка.
… with instructions being executed in order of line number — … так как команды выполняются в порядке следования номера строки.
multi-way branch instruction — многовариантная программа перехода.
case statement — оператор выбора
I. Answer the following questions:
1.What operations do high-level languages permit? 2.Do most high-level languages have the facility to manipulate entire data structures including matrices? 3.What do rules of precedence specify? 4.Do call programs operate the same rules of precedence? 4.Do all high-level languages input and output in the same way? 5.How is sequencing achieved? 6.What is looping concerned with? 7.Does looping sometimes allow for instructions to be repeated until a condition is true? 8.What is branching? 9.What are the objectives of high-level languages? 10.Which of them has been achieved? 11.What still makes a problem? 12.What were the results of transformation of computer programming from the domain of experts to a wider group of people? 13.Where are low-level languges used nowadays? 14.Why could specification languages cause high-level languages to pass out of use?
II Give the main ideas of the text in logical order.
III Translate in writing.
Язык Си имеет 30 ключевых слов и 13 типов выражений. Компиляторы Си легко переносятся на новые архитектуры. Си богат операторами, он включает более 44 отдельных операторов и 15 уровней приоритета. Си поддерживает структурное программирование. Си имеет много стандартных библиотек.
Единственной информационной структурой языка Фортран является массив, который соответствует матрицам, широко используемым в полученных расчетах. В языке Фортран II впервые была реализована важная идея независимой компиляции программ, что дало возможность создавать библиотеки научных подпрограмм. Эффективность программ, создаваемых первыми компиляторами языка Фортран, во многом обусловила переход к языкам высокого уровня как к основному средству программирования.
Паскаль был разработан в качестве инструмента для систематизированного обучения программированию. Для этого в Паскале предусмотрены управляющие структуры структурного программирования — последовательность, выбор и повторение — и структуры данных — массивы, записи, файлы, наборы и классы, определяемые пользователем. В дополнение к стандартному Паскалю рядом фирм при разработке систем используются его модернизированные версии.
IV. Topics for discussion:
Different high-level languages suit different problems.
Compilers are indispensable to a computer.
Standard subroutine libraries.
Structured programming.
Section 6
21st Century Word Processors
Unit one
Memorize the key vocabulary:
Create v. — создавать
Remain v. — оставаться
Preparatory adj. — подготовительный, предварительный
Package n. — пакет
Manual adj. — ручной, с ручным управлением.
Innovation n. — нововведение, новшество, новаторство
Hypertext — гипертекст (включает слуховые и визуальные образы)
Multi-media — мульти-медиа
Encompass v. — заключать
Consequently adv. — следовательно, поэтому; в результате
Deal with (dealt, dealt) v. — иметь дело, обращаться(c)
Database n. — база данных
Consider two propositions. First, word processors have improved by leaps and bounds since their advent about ten years ago. Second, what we actually do with word processors has not changed very much in the last decade. Both these statements may be true, but they create a tension: if the technology has been so revolutionary why should things remain pretty much as they always were?
One resolution to this slight conundrum is that the revolution has not yet begun in earnest. So far we have been watching a dress rehearsal: word processing is going to change radically in the next decade, and will make a huge difference to the way we write and think about writing. The improvements to the technology of word processing witnessed so far are preparatory to the really significant changes, which will make us look at language and computing in a new light.
These changes are unlikely to come about through the gradual accretion of even more features to the already excellent packages in the market. Do we seriously image that Word Perfect 12.0 will arrive on our desks in 1999 with a manual three feet thick? Our guess is that several software innovations which are already hovering on the edge of the mainstream will blossom over the next five or ten years. These innovations will create niches for newcomers and simultaneously force the major packages to focus on parts of the language software market which they are best at. We will recognise that there is much more to language processing software than the rather similar functions covered by the best contemporary word processing packages.
SPEECH PROCESSING. It seems highly likely that speech proсessing will move more into the mainstream of personal computing. As ever with innovation, it may not happen in quite the way we first imagined. When speech processing was first mooted five years ago, it was seen as a way of circumventing the keyboard. Some of us have trouble with basic typing, and nearly all of us have difficulties with rarely-used command sequences or macros. While we look forward to the day we can instruct our machines to "print three copies", significant applications for speech processing are likely to appear before we get reliable automatic dictation machines. We will incorporate speech messaging well before we crack the problem of unconstrained speech recognition.
Most of the documentation that moves around corporations and between businesses is remarkably standard. The average document comes in about five almost-identical versions: file copies, agenda, schedules, minutes, 'blind' copies sent to colleagues, action copies sent to subordinates and so on. The five copies generally differ only in their destination and minor detail. A problem with such documentation is that it tends to be regarded as dross by its recipients, even if it is in fact important. An ideal way of giving apparent dross a high 'impact factor' is to attach a voice message to some email.
Incorporating sound bites in documents may seem a superficial addition to the basic word processing function. But it is in line with the tendency towards object-oriented programs and user interfaces, hypertexts and multi-media documents. And all these powerful trends in the technology will encourage us to think of word processing as much broader than the typing or typesetting functions predominant in today's word processing and desktop publishing programs. While word processing will encompass voice and graphics, we can also count on an equally strong tendency towards a more abstract and artificial view of the document as ‘structured program’.
The drive to uncover structure in documentation is already very strong in the defence industries. We have all heard the story about the documentation for a Boeing 737 weighing more than the aeroplane itself, or the American frigates which carry more tons of paper than they do tons of missiles. But this mass of paper is no joke for the industries which build these machines, and they are consequently taking the lead in developing powerful tools for the automatic processing and interpreting of documentation.
SGML. One of the keys is the development of Standard Generalised Markup Language (SGML) schemes: SGML allows for documentation manipulation which is independent of the particular way in which the document has been processed or represented – on paper, screen, or magnetic tape for example. SGML has a real pay-off when you are dealing with large amounts of text. In typesetting or desktop publishing systems there is no way of distinguishing the italic into which you cast the title of a book from the italic you use for a foreign word.
But in SGML systems these differences are marked. The basic idea is that if you can treat the structure of documentation as abstract and declarative rather than being procedural and dependent on the manner of its representation, it should be much easier to make large scale comparisons of documents. SGML markup is not easily intelligible to the human eye – quite the reverse, as it tends to look like a jumble of brackets and codes.
But new software will use SGML while concealing it from the user, in much the same way as our word processors now use and exchange ASCII without our needing to notice it. SGML will come into its own when users are able to incorporate documents, standard form contracts or advertising brochures into their databases, agreement files or catalogues without needing to consciously translate the structure to the formats they prefer to use.
Notes:
by leaps and bounds — быстро
… a dress rehearsal — генеральная репетиция
… which are already hovering on the edge — … которые уже имеют потенциал дальнейшего развития …
… was first mooted — … была поставлена на обслуживание
… before we crack the problem — … до того, как мы найдем решение проблеммы.
dross — ненужное (лишнее)
… will come into its own when … — … займет подобающее место когда …
I. Answer the following questions:
1.What will make us look at language and computing in a new light? 2.In what field will the new processors be improved? 3.What do you understand as speech processing? 4.Does the average document come in five versions? What are they? 5.What is seen as the major difficultly with the use of standard documentation? 6.What are the examples of the documentation problems facing industries? 7.How can the documentation be represented? 8.What is SGML? 9.What are its functions? 10.When will we be able to process speech?
II. Give the main ideas of the text in logical order.
Unit Two
Memorize the key vocabulary:
Variety n. — разнообразие; множество
Reflect v. — отражать, изображать
Cause v. — быть причиной; причинять; вызывать
Ambiguity n. — двусмысленность; неопределенность, неясность
Tackle v. — заниматься чем-либо
Envisage v. — рассматривать; предусматривать
Explicit adj. — ясный, подробный, точный, определенный
Transport v. — переносить, перемещать
SGML: the future standard?
Structured generalised Markup Language (SGML) may be to the next generation of word processors, what ASCII is to this, says Peter Howgate.
Today's word processing systems provide an increasingly rich variety of tools to help users communicate with their particular audiences. The layout of the words can be complex and is rapidly merging with the once-separate arena of desktop publishing, whereby presentation effects such as bold, italics, different typefaces and type sizes – hitherto available only to professional typesetters – are now available within word processing systems.
These presentation-oriented features are designed not only to make the text easy on the eye, but also to reflect some of the underlying structure or information content of the text. For example, headings will always be in bold, or, in an instruction book, warnings may be presented in a particularly large and striking typeface.
In this environment the writer usually thinks first of the information content of what he or she is trying to say, and then later the way in which that content is presented to the reader.
The result is a printed document, hopefully easily understandable by the user, but also a computer file which contains the text and associated 'mark up'. This mark up, which informs the computer system of the layout of the information is generally unique to a particular computer system or word processing system at a particular point in time. Anyone who has attempted to transfer large word processing files from one system to another; or even from one generation of a system to the next generation of the same system, will testify to the pain that can be caused by the fact that these codes are unique and system and time specified. More subtly perhaps, the codes themselves, and indeed the typographic representation of these, may not fully reflect the information content of the text.
For example, an author's name and his affiliation may well both appear in italics. There is no particular problem to a human reader, who can readily and intuitively distinguish the two quite separate information elements. But where this information could be used for other purposes than merely the printed words, then this potential ambiguity can be a source of real problems.
The approach which underpins SGML (Standard Generalised Markup Language) tackles both these problems by envisaging a computer file in which the information elements within the text file are themselves explicitly identified or marked up. Not only that, .the information is marked up in a standard way which is not peculiar to a specific system nor to a particular point in time. The idea is to store the text and its format in a manner that allows it to be transported from system to system and from today's systems to tomorrow's systems.
Notes:
professional typesetters — профессиональные наборщики
underlying structure — внутренняя структура
… to make the text easy on the eye — … сделать текст легким (удобным) для визуального восприятия.
… at a particular point in time — в конкретный момент времени.
… will testify to the pain — столкнуться с проблемой
typographic representation — представление в отпечатанном виде.
I. Answer the following questions:
1.What kinds of presentation effects do you know? 2.Why are the presentation-oriented feautures designed? 3.How is the information laid out? 4.What are the difficulties in transferring large word processing files from one system to another? 5.What is the idea of the use of the SGML?
II. Give the main ideas of the text in logical order.
III. Translate in writing.
NEC улучшает память
Корпорация NEC анонсировала новую технологию, которая, как утверждается, повысит производительность компьютерных систем на 20%. Технология, получившая название VCM (Virtual Channel Memory), ускоряет работу чипов памяти, не предъявляя при этом особых требований к аппаратным средствам.
Специалисты NEC попытались по-новому взглянуть на природу взаимодействия памяти и процессора. Если раньше улучшения касались лишь интерфейса между чипами памяти и процессора, то теперь пришло время изменить «внутреннюю конструкцию» (internal design) модуля памяти. Используемые в настоящее время чипы имеют один канал, по которому осуществляется взаимодействие между ячейками памяти и I/O терминалами. Этот канал не способен справляться с интенсивным трафиком, неизбежно возникающим при операциях чтения/записи данных. В результате возникает затор, и производительность системы падает. VCM расщепляет единственный канал модуля памяти на множество виртуальных, где часть информации, соблюдая очередность, «пережидает» пиковые нагрузки. Это, по утверждению NEC, улучшает общие показатели производительности системы. Наиболее простой VCM-чип, представляющий собой 64-мегабитную SDRAM, включает в себя 16 виртуальных каналов памяти.
Так как новая технология касается лишь внутренней природы чипа, а его конструкция остается без изменений, сборщики компьютеров не нуждаются в установке дополнительных компонентов или модификации схемных решений. В большинстве компьютерных систем можно будет легко заменить старые модули памяти на новые, хотя в некоторых случаях потребуются специальные чипы-контроллеры.
IV. Topics for discussion.
The software developments in word processing (past, present, future)
SGML (Standard Generalized Markup Language). Advantages and disadvantages.
The history of the problem of word processing.
Section 7
Fifth Generation Computers
Memorize the key vocabulary:
In spite of — несмотря на
Inference n. — (лог.) вывод, заключение
Update v. — корректировать; обновлять
Evolve v. — развивать(ся)
Performance n. — характеристика; производительность
Dataflow n. — поток данных
Image processing — обработка изображений; иконика
Collaboration n. — сотрудничество; совместная работа
Technique n. — метод, способ; техника, технический прием
Behave v. — поступать, вести себя; работать (о машине)
Goal n. — цель, задача
The latter n. — последний (из 2х названных; противоположный the former )
The Nature and Objectives of Fifth Generation Computers
Fifth generation computers aim to be able to solve highly complex problems, ones which require reasoning intelligence and expertise when solved by people. They are intended to be able to cope with large subsets of natural languages, and draw on very large knowledge bases. In spite of their complexity, fifth generation computers are being designed to be used by people who are not necessarily computer experts.
In order to achieve these very ambitious aims, fifth generation computers will not have a single processor, or a small number of tightly coupled processors as computers do today. They are being designed to contain a large number of processors, grouped into three major subsystems: a knowledge base system, an inference mechanism and an intelligent user interface.
The knowledge base system has a very large store of knowledge,with a set of processors which access and update the knowledge. It is likely that knowledge bases will evolve from current work in relational databases Operations on knowledge bases require the manipulation of large numbers of individual elements: this manipulaton will be done in parallel by the arrays of knowledge processing elements.
The inference mechanism draws reasoned conclusions from the knowledge base. Much of its processing will be drawing logical inferences of the:
if then variety.
Accordingly, the processing power of a fifth generation computer is expressed in logical inferences per second (lips). The target is in the range 50 to 1000 million lips (compared with a current performance of 10 to 100 thousand lips). Most of this improved performance is planned to be achieved via highly parallel architectures, such as the dataflow and graph reduction architectures.
The intelligent user interface is the point of contact between a fifth generation computer and its user. Many of these will be based on communication in a large subset of a natural language. Others will make extensive use of advanced graphics, including image processing. The intention is to build a user interface which is close to the natural way of thinking of the user, rather than close to the way of working of the computer, as is the case with contemporary user interfaces. The intelligent interface will contain its own set of processing elements - image processing systems may have an array of processors, one per pixel of the display.
The Fifth Generation Development Programmes
There are five major programmes under way to develop fifth generation computers: the Japanese Icot programme, the MCC and Darpa projects in the USA, the Esprit initiative in the EEC and the Alvey programme in Britain. There is a certain measure of collaboration between the programmes, but the research results in each project are intended to be implemented within the region. Most research and development is being carried out by consortia of corporations and universities.
Intelligent Knowledge Based Systems
Intelligent knowledge based systems (IKBS) are the central elements of fifth generation computers. They use inference to apply knowledge to perform a task. They require at least the following capabilities: classification, concept formation, summarising, selection, searching, reasoning, planning, modelling, the use of 'common sense' rules, and the ability to learn. Most of these are beyond the capabilities of present-day computers.
Research and development work is under way on various aspects of these problems, the most important - and the most difficult - being an adequate method of knowledge representation. A number of techniques of knowledge processing are being tried out. These include evidential reasoning, based on the way people draw conclusions from bodies of evidence, such as that presented at a trial, and procedural learning, based on the way experts learn to solve difficult problems. Efficient methods of searching large databases are also being investigated.
Intelligent User Interfaces
Intelligent user interfaces aim to make fifth generation computers usable by far more people than use computers at present. This is in spite of the complexity of the systems, and the fact that many users will not be computer experts. The technique is to make the computer behave much more as a person would expect. Two main channels of communication are being emphasized: the use of natural language and image processing.
Although a complete natural language will be beyond the capabilities of even a fifth generation computer, the intention is to enable them to use a large enough subset to make a number of voice-driven applications possible. Image processing requires the computer to be able to accept video pictures as input, and generate output of the same quality. Some approximation to three-dimensional vision is required. Intelligent interfaces will be supported by a complete hardware and software subsystem of the computer.
Applications of Fifth Generation Computers
A very wide range of applications are planned for fifth generation computers, although their precise capabilities will not become clear until more development work has been done. Many applications will be expert systems of some sort.
The main industrial application is likely to be intelligent robots, with some degree of visual perception, and the ability to be instructed to attain certain goals, rather than to perform a sequence of steps, as at present. The robot will work out the sequence of steps to be performed, according to the goals, and external conditions of which it is aware.
Military applications include strategic and tactical planning and decision support systems, and automated weapons systems. The latter include intelligent guidance systems for missiles, and missile defence systems for aircraft and ships. Digital communications systems which are secure against electronic countermeasures are a likely by-product of VLSI chip design.
In commerce, corporate knowledge bases are likely to be constructed on top of corporate databases. Decision support systems for managers will use these knowledge bases to assist with planning and evaluation. The voice-activated word processor is the ultimate aim of a number of fifth generation projects, with a very large potential market awaiting the first team to achieve it. Automatic, or (more realistically) semi-automatic language translation systems are a similar application.
Conclusion
The fifth generation development projects are the main thrust of computer development for the next five to ten years. Large sums of money, and the time and energy of some of the leading IT experts in the world are being devoted to the work. The risks are very high, since many of the principles on which fifth generation computers are to be built did not exist five years before the start of the projects. However, the risks of withdrawing from the work are even higher. It is quite clear that if any national or regional group achieves a significant lead in the development of fifth generation computers, that group will be the dominant force in information technology at least until the turn of the century.
Notes:
knowledge base system — система обработки информации на базе знаний
graph reduction architecture — архитектура предварительной обработки графической информации.
evidential reasoning — рассуждение по “очевидности”
I. Answer the following questions:
1.Which is the aim of fifth generation computers? 2.What are the three major subsystems which form a group within the processors of the new computers? 3.What is the processing power of a fifth generation computer expressed in? 4.In what way will the new computers deal with natural language and knowledge bases? 5.How will the processing power of the new computers be compared with current performance? 6.Which technique for communicating with the user will the new computer use? 7.Which agencies or groups are carrying out the research into fifth generation computers? 8.Why is it that intelligent knowledge based systems are the central elements of fifth generation computers? 9.What will encourage to make fifth generation computers usable by users who are not computer experts? 10.What ranges of applications are planned for the new generation computers? 11.Why are the risks in the area of the fifth generation development very high?
II. Give the main ideas of the text in logical order.
III. Translate in writing.
Учеными уже разрабатываются ЭВМ следующего пятого поколения.
Отличие ЭВМ пятого поколения от современных cвязано с увеличением их “интеллектуальных” возможностей.
Разрабатывается устройство, которое позволит вести диалог с ЭВМ на естественном языке.
В этом случае любой человек сможет “разговаривать” с ЭВМ без помощи программиста.
ЭВМ 5-го поколения могут хранить колоссальные обьемы информации по любой области знаний.
Такие систематизированные обьемы информации называются базами знаний.
Производительность ЭВМ пятого поколения измеряется логическими умозаключениями в секунду.
Центральными элементами ЭВМ пятого поколения являются интеллектуальные системы обработки информации на основе знаний.
Для ЭВМ пятого поколения планируется широкий диапазон применений.
ЭВМ пятого поколения будут включать множество процессоров, механизм логического вывода и интеллектуальный пользовательский интерфейс.
IV. Topics for discussion.
The nature and objectives of fifth generation computers.
The main programmes of the fifth generation development.
Intelligent knowledge based systems and intelligent user interfaces.
Application areas of fifth generation computers.
Section 8
Internet.
Memorize the key vocabulary:
Survive v. — выжить
Stay in touch — поддерживать связь
Owing to — благодаря, из-за, вследствие, по причине
Access to n. — доступ
Encoding n. — кодирование
To conduct transactions v. — производить сделки
Transmit v. — передавать
Destination n. — пункт назначения
Internet, a global computer network which embraces millions of users all over the world, began in the United States in 1969 as a military experiment. It was designed to survive a nuclear war. Information sent over Internet takes the shortest path available from one computer to another. Because of this, any two computers on Internet will be able to stay in touch with each other as long as there is a single route between them. This technology is called packet swithing. Owing to this technology, if some computers on the network are knocked out (by a nuclear explosion, for example), information will just route around them. One such packet-swithing network already survived a war. It was the Iraqi computer network which was not knocked out during the Gulf War.
Most of Internet host computers (more than 50 %) are in the United States, while the rest are located in more than 100 other countries. Although the number of host computers can be counted fairly accurately, nobody knows exactly how many people use Internet, there are millions, and their number is growing by thousands each month worldwide.
The most popular Internet service is e-mail. Most of the people, who have access to Internet, use the network only for sending and receiving e-mail messages. However, other popular services are available on Internet: reading USENET News, using the World-Wide Web, telnet, FTP, and Gopher.
In many developing countries Internet may provide businessmen with a reliable alternative to the expensive and unreliable telecommunication systems of these countries. Commercial users can communicate over Internet with the rest of the world and can do it very cheaply. When they send e-mail messages, they only have to pay for phone calls to their local service providers, not for calls across their countries or around the world. But who accually pays for sending e-mail messages over Internet long distances, around the world? The answer is very simple: a user pays his/her service provider a monthly or hourly fee. Part of this fee goes towards its costs to connect to a larger service provider. And part of the fee got by the larger provider goes to cover its cost of running a worldwide network of wires and wireless stations.
But saving money is only the first step. If people see that they can make money from Internet, commercial use of this network will drastically increase. For example, some western architecture companies and garment centers already transmit their basic designs and concepts over Internet into China, where they are reworked and refined by skilled – but inexpensive – Chinese computer-aided-design specialists.
However, some problems remain. The most important is security. When you send an e-mail message to somebody, this message can travel through many different networks and computers. The data are constantly being directed towards its destination by special computers called routers. Because of this, it is possible to get into any of computers along the route, intercept and even change the data being sent over Internet. In spite of the fact that there are many strong encoding programs available, nearly all the information being sent over Internet is transmitted without any form of encoding, i.e. "in the clear". But when it becomes necessary to send important information over the network, these encoding programs may be useful. Some American banks and companies even conduct transactions over Internet. However, there are still both commercial and technical problems which will take time to be resolved.
Notes:
a monthly or hourly fee — помесячная или почасовая оплата.
drastically adv. — радикально; коренным образом
garment centers — дома моделей
computer – aided – design specialists — дизайнеры, использующие компьютер в своей работе.
I. Answer the following questions:
1.When and how did Internet begin? 2.What is packet switching? 3.Is it possible to say how many Internet users exist? 4.What is the most popular Internet service? 5.What is e-mail? 6.Is it really cheap to use Internet? 7.What problems remain in Internet use? 8.How do you use Internet?
II. Give the main ideas of the text in logical order.
III. Render the main ideas of the article A.
Первоначально глобальная сеть Интернет была разработана для нужд министерства обороны США. Однако впоследствии к ней подключились неправительственные организации, научные учреждения, учебные заведения. Сегодня Интернет стал всемирной сетью, объединяющей компьютеры практически во всех странах мира.
Россия также не стала исключением. Точно указать количество русскоязычных серверов сети Интернет практически невозможно, однако на брифинге Microsoft, посвященном обьявлению русской версии Internet Explorer 4.0, была названв цифра 10 000.
Какой из них лучше и с какого начать свое путешествие по русскоязычной сети — вопрос сложный. Возможно, его поможет решить конкурс «Золотой Сайт-98», который призван определить наиболее интересные серверы российского Интернета по 20 номинациям.
Для деловых людей Интернет также представляет большой интерес. Используя сеть, они могут получить наиболее оперативный доступ к разнообразной информации, начиная от текущего курса валют и кончая рейтингами надежности банков и базами данных по российскому законодательству. Доступ к информации подобного рода обычно платный, однако на некоторых серверах содержится и общедоступная бесплатная информация.
Незаменим Интернет и для тех, кто решил отдохнуть. В сети можно узнать, какие фильмы идут в кинотеатрах, каков репертуар театров и концертных залов. Гурманы найдут для себя сведения о ресторанах – краткую информацию о кухне и примерные цены.
Если вы больше любите отдыхать дома, посетите сервер КРОВАТКА. Здесь можно пообщаться с другими посетителями сервера. Если вас интересует фантастика, то по адресу www.sf.amc.ru вы обнаружите не только рейтинги писателей и произведений, но и полные тексты многих книг.
Возможно, Интернет поможет вам найти более интересную или высокооплачиваемую работу. В российской сети есть много серверов, публикующих объявления о найме на работу. Начать поиск вы можете с сервера www.job.ru На нем вы увидите список вакансий, сможете разместить свое объявление. Здесь также расположены ссылки на серверы кадровых агентств, занимающихся вопросами трудоустройства.
Корпорация Microsoft выпустила русифицированный вариант новой, четвертой версии Internet Explorer. Как и все предыдущие версии этого продукта, его можно бесплатно получить с сервера корпорации по адресу www.microsoft.com/ie_intl/ru/ie40/download/. В этой версии полностью переведен на русский язык интерфейс браузера, расширен набор кодировок русских символов, с которыми работает программа. Для начинающих пользователей браузер первоначально настроен для работы с рядом российских серверов и каналов Web. Поэтому сразу после установки русской версии Internet Explorer 4.0 вы сразу сможете получить информацию с отечественных серверов на русском языке.
Один из лучших способов найти конкретную информацию – провести поиск по ключевым словам. Для этого необходимо воспользоваться специальными поисковыми серверами. Указав ему одно или несколько ключевых слов, вы получите ссылки на те серверы сети, где эти слова встречаются.
В настоящее время широко известен ряд зарубежных поисковых серверов - Alta Vista, Excite, Lycos, Yahoo и другие. Однако для поиска среди российских ресурсов сети Интернет лучше использовать отечественные поисковые системы, которые учитывают морфологию русского языка.
(“Капитал”, 11-17 февраля 1998.)
Интернет проник во многие сферы человеческой деятельности, и теперь трудно представить, как мы раньше без него обходились. Технологии Интернета внедряются в средних и крупных фирмах, создающих то, что принято называть сетями Интранет. В результате этого многие компьютеры стали подключаться к сети Интернет или к корпоративным сетям Интранет.
Реагируя на это, такие известные фирмы, как Oracle, Sun Microsystems, Microsoft, Silicon Graphics и другие, уже не первый год разрабатывают проект создания так называемого сетевого компьютера (Network РС). По замыслу авторов проекта, в будущем он должен стать основным и к тому же недорогим средством доступа в сети Интернет и Интранет, вытеснив привычные всем настольные персональные компьютеры. Чем же отличается сетевой компьютер от обычного персонального и действительно ли он может вытеснить последние с рынка ?
Отличий несколько. Наиболее существенное из них – низкая стоимость сетевого компьютера (по прогнозам фирмы Oracle, она составит около $500), которая достигается за счет максимального упрощения конфигурации. У сетевого компьютера нет жесткого диска, объем оперативной памяти составляет 1-4 Мb, а операционная система хранится в микросхеме постоянного запоминающего устройства (ПЗУ). Конечно, сетевой компьютер оборудуется всем необходимым для подключения к сети: модемом, адаптером ISDN или адаптером локальной сети. Предполагается, что все программы, с которыми работает пользователь, загружаются не с диска или дискет, а прямо из сети. Поэтому, как считают разработчики сетевого компьютера, нужда в дисковой памяти отпадает.
Разумеется, вместо привычных вам операционных систем Microsoft Windows, MS-Dos или IBM OS/2 в сетевом компьютере используется специализированная операционная система. Она ориентирована в первую очередь на исполнение программ Java и содержит специальные средства для работы в сети.
(“Капитал”, 21-27 мая 1997.)
III. Topics for discussion.
From telephone exchange to service center.
How can you use e-mail ?
What is the future of Internet in your opinion ?
GLOSSARY
absolute address
|
The numerical identification of each particular storage location, permanently assigned by the machine designer. Each register, storage location, or component of a computer has a code number. Also called 'machine address'.
|
access
access method
(2) SOFTWARE
|
To obtain data from or place data into storage.
(4) The programmer's software link between the program and the data to be transferred by it into or out of memory.
|
access time
|
The fundamental machine cycle time; the time required by the CPU to transmit or receive a word to or from core storage.
|
accumulator
HARDWARE
|
A part of the circuitry of the arithmetic and logical unit of a computer in which the results of these operations are held. Also used at times as a temporary storage location for a specific amount of data, usually one word, during processing. Abbreviated: AC or ACC.
|
ADA
SOFTWARE
|
A high level programming language containing the most important software advances of the late 1970's. Its many new concepts include user capability to manage large program projects. Named for Augusta Ada, Lady Lovelace, the daughter of Lord Byron and an associate of Charles Babbage. She has been called the first programmer.
|
adder
HARDWARE
|
A device that forms the sum of two numbers.
|
address
|
An identification (label number, name, etc.), which designates a particular location in storage or memory.
|
address format
|
The particular arrangement, layout, or organization of the address portion of a computer instruction.
|
address modification
|
An operation which causes an address to be altered in a prescribed way by a stored program computer.
|
address register
HARDWARE
|
A register in which an address is stored; part of the hardware of a computing system, usually located in the central processing unit.
|
address space
|
Complete range of addresses that is available to a computer user.
|
address translation
|
The process of changing the address or an instruction or item of data to the address in internal memory at which it is to be loaded or relocated.
|
ALGOL
Algorithmic Language
SOFTWARE
|
An algorithmic and procedure oriented language used principally in programming of scientific problems. It was devised in 1958, revised in 1960 and in 1968. The current version is referred to as ALGOL-68. More widely used in Europe than in the United States.
|
algorithm
algorithmic languages
(2)SOFTWARE
|
A prescribed set of well defined, unambiguous rules of processes for the solution of a problem in a finite number of steps.
A programming language in which algorithmic procedures can be directly expressed efficiently. Common ones are: ALGOL,FORTRAN, PASCAL, PL/I, ADA.
|
ALU:
Arithmetic Logic Unit
HARDWARE
|
A basic portion of computer hardware, the element of the central processing unit that performs the arithmetical and logical operations of a digital system.
|
analog computer
HARDWARE
|
A computer that uses physical quantities - such as voltage, current, resistance, to represent numerical quantities to solve operational problems.
|
architecture
HARDWARE
|
The internal configuration of a computer including its registers, instruction set and input/output structure.
|
artificial intelligence
|
The ability of a machine to perform functions that are generally associated with human intelligence, such as learning, reasoning and self-improving.
|
assembler
assembly language
SOFTWARE
|
A computer program designed to convert nonmachine language instructions prepared by a computer user into a form that can be used by the computer. Unique to a particular computer.
A low-level symbolic programming language which closely resembles machine code language. Contrast with: problem-oriented language.
|
automatic check
HARDWARE
|
An error detecting check provided by the hardware. Also called: “built-in check”.
|
auxiliary equipment
HARDWARE
|
Equipment not under the direct control of the central processing unit (CPU).
|
auxiliary operation
|
An operation performed by equipment which is not controlled by the central processing unit (CPU).
|
auxiliary storage
HARDWARE
|
That which supplements the primary internal storage of a computer. Sometimes called 'secondary storage'.
|
BASIC:
Beginners All-purpose Symbolic Instruction Code
|
Do'stlaringiz bilan baham: |