Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
Все множество описанных программ, конечно, не возникло сам по себе. Каждую утилиту, каждый драйвер, редактор, игру, саму операционную систему сделали программисты. Как же им это удается?
Сердце компьютера - процессор. Он очень быстро выполняет элементарные команды-инструкции (например, взять из ячейки 12357 число, сложить его с числом из ячейки 98754, а результат поместить в ячейку 45G89), но больше ничего делать не умеет.
Таких инструкций для процессора Pentium насчитываются сотни, и с появлением новых марок (Pentium II, Pentium III, Pentium 4) их число неуклонно растет - добавляются команды перемещения в памяти больших блоков информации, выполнения над этими блоками действий, характерных для задач обработки трехмерных изображений и т. д.
Любая программа представляет собой набор из сотен тысяч или даже миллионов инструкций процессора, каждая из которых кодируется одним или несколькими байтами (эти инструкции еще называются машинным кодом). Пытаться составлять программу, просто набирая коды инструкций, - занятие бессмысленное. Уже после десятка введенных таким способом команд человек теряет нить рассуждений, начинает путаться и допускать ошибки.
Кроме того, программа - это не просто набор вычислительных инструкций. Для общения с внешними устройствами, например, для считывания блока информации с жесткого диска, в наборе команд процессора есть специальная инструкция - прерывание, которая прерывает работу процессора и передает управление периферийному оборудованию. Чтобы грамотно использовать прерывания, надо детально разбираться в устройстве всех частей компьютера и понимать логику их работы.
Имеется и еще одна сложность ввода программы в машинных кодах. Приложение для операционной системы - это, как правило, не просто последовательность инструкций процессора, это файл, в котором определенная часть отведена под заголовок, описывающий структуру программы, ее расположение в памяти. Ввести текст такой программы в машинных кодах невероятно трудно. Правда, лет 50 назад программы так и писались - инструкции могли пошагово закладываться в процессор с помощью комбинации рычажков управляющей панели или вводом байтов с пишущей машинки. А чтобы получить результат, надо было по разноцветным лампочкам на пульте определить, что хранится в конкретной ячейке памяти. Но в результате получалось, что, для того чтобы написать самую простую программу решения квадратного уравнения, надо было потратить неделю работы. Делались попытки заменить числовых кодов инструкций их названиями, например, вместо можно было написать СЛОЖ @78 5 , что означало "сложить содержимое ячейки 78 с числом 5, а специальная программа автоматически переводила эти слова в соответствующие машинные инструкции. Так появился язык программирования Ассемблер, и тексты программы приняли более осмысленный и наглядный вид. Однако трудоемкость составления более-менее сложных приложений практически не уменьшилась. Выход был найден в 50 годы, когда появился первый высокоуровневый язык программирования.
2. Языки программирования
Языки программирования – это особые программы, которые являются инструментальной средой для создания других компьютерных программ.
Все множество языков программирования разделяется на следующие классы:
— машинные (computer language) — языки программирования, воспринимаемые аппаратной частью компьютера (машинные коды);
— машинно-ориентированные (computer-oriented language) — предназначены для использования на тех ЭВМ, для которых эти языки разработаны (ассемблеры);
— алгоритмические (algorithmic language) — языки, не зависящие от архитектуры компьютера и предназначенные для отражения структуры алгоритма (Паскаль, Фортран, Бейсик и др.);
— процедурно-ориентированные (procedure-oriented language) — языка программирования, где имеется возможность описания программы как совокупности процедур (подпрограмм);
— проблемно-ориентированные (universal programming language) — языки программирования, предназначенные для решения задач из определенной профессиональной деятельности (Лисп, РПГ, Симула и др.);
— интегрированные системы программирования — делятся на языки, ориентированные на реализацию основ структурного программирования и объектно-ориентированные языки, Поддерживающие понятие объектов и их свойств и методов обработки. Попадая в среду развитого алгоритмического языка, понятия объектно-ориентированного программирования оформляются в стиле этого языка (например, язык Object Pascal).
Программы на языке программирования записываются с помощью более-менее понятных человеку слов и символов. При этом получается так, что чем ближе язык программирования к машинному коду, тем удобнее программа для процессора – она и выполняется быстрее, и места в памяти меньше занимает. А чем ближе язык к человеческому, тем удобнее он людям, но тем меньше в нем команд для управления регистрами процессора. Языки, близкие к процессору, называют языками низкого уровня, а языки, удобные для людей – языками высокого уровня.
Высокоуровневые языки программирования предназначены для написания программ с помощью привычных человеку терминов. Они манипулируют не конкретными ячейками памяти и элементарными инструкциями, а командами естественного языка (точнее, командами, напоминающими естественный язык), например: если ускорение равно 0, то вычислить расстояние = скорость * время;
В дальнейшем, эти команды с помощью специальных программ автоматически переводятся в машинный код.
В зависимости от набора подобных команд и направленности этого набора на решение математических, экономических, или каких-либо других задач языки высокого уровня отличаются друг от друга однако не очень сильно. Все они основываются на трех-четырех базовых языковых конструкциях (операторах) и способах представления информации. Изучив один известный язык, впоследствии можно легко перейти к изучению другого.
Языков программирования великое множество. Только относительно активно используемых насчитывается около 400. Однако наибольшую популярность получило не более десятка языков. Это связано с самыми разными причинами: с рекламными вложениями фирм, выпускающих системы программирования на этих языках, с личными предпочтениями лидеров компьютерной индустрии, с историческими, культурными аспектами и т. д.
Самым первым языком программирования, получившим широкое распространение, стал Фортран (Fortran, FORmula TRANslation, перевод формул в машинный код, создан в конце 50 годов). Он предназначался в основном для математических вычислений и использовался в первое время преимущественно военными. Несколько позже появились Алгол, Кобол, а в дальнейшем новые языки стали рождаться как грибы после дождя (и, в основном, также быстро пропадать).
Бейсик (Basic, Beginner's All-purpose Symbolic Instmction Code, многоцелевой символический код для начинающих), был разработан в начале 60 годов в Дартмутском колледже для учебных целей. Благодаря своей простоте он быстро завоевал популярность и был реализован для множества тогдашних компьютеров.
Очередная компьютерная революция совершилась в середине 1970 годов, когда на свет появились первые микрокомпьютеры для домашнего использования, по своим возможностям напоминавшие современные программируемые микрокалькуляторы. Для одного из таких персональных компьютеров - Altair - и был реализован Бейсик, как самый простой из созданных к тому времени языков программирования. Выполнил эту работу Билл Гейтс, нынешний президент Microsoft, со своим напарником Полом Алленом. В дальнейшем усилиями Гейтса Бейсик был перенесен на платформу IBM PC, а его наиболее доработанная версия QBasic (Quick Basic, быстрый Бейсик) вошла в базовую поставку операционной системы MS-DOS.
Президент Microsoft сохранил приверженность Бейсику и по сей день. Хотя, безусловно, есть языки, гораздо более мощные и гораздо более подходящие для создания современных программ, чем Бейсик, благодаря усилиям и финансовой поддержке Microsoft он продолжает активно развиваться. Сейчас 2 миллиона программистов в мире (из 5 миллионов) используют для разработки приложений различные модификации Бейсика.
Этот язык реализован для множества операционных систем. В частности, для операционной системы MS-DOS имеется версия QBasic и Visual Basic for MS-DOS, для Windows почти каждый год выходит новая версия Visual Basic (последней была 6-я версия). Во все офисные приложения компания Microsoft встроила язык Visual Basic for Applications (VBA), используемый в них в качестве своеобразного макроязыка. Например, в текстовом редакторе Microsoft Word на VBA можно разработать преобразователь в нужный вид текста, случайно набранного не в том регистре, или даже игру в крестики-нолики. На VBA пишутся, к сожалению, и печально известные вирусы, способные через Интернет за несколько часов распространиться по всему миру. Хорошо зная одну, базовую версию Бейсика — QBasic, в дальнейшем можно свободно переходить к работе с другими версиями этого простого и очень популярного языка. Кроме того, знание Бейсика очень желательно, если вы хотите в будущем писать программы для Windows.
3. Трансляторы
Составлять программу на языке высокого уровня, конечно, удобно. Набрал текст в редакторе, записал команды в соответствии с алгоритмом решения задачи - и все. Не надо знать внутреннего устройства компьютера, работы системы ввода/вывода, заботиться о накладываемых на структуру программы требованиях операционной системы. Но ведь текст программы - это еще не готовое приложение, это только набор символов, которые "запустить" в работу невозможно.
Для того чтобы набранный на каком-то языке программирования исходный текст приложения заработал и смог выполнять заложенные в него команды, применяются так называемые трансляторы.
Транслятор - это специальная программа, которая автоматически превращает исходные тексты в работающее приложение, например калькулятор. Как же она это делает?
Возможны два подхода. Исходный текст, например, набор инструкций Бейсика, переводится непосредственно в машинный код — при этом сразу формируется файл программы, отвечающий всем соглашениям операционной системы. Такой процесс перевода исходного текста в инструкции процессора и прерывания системы называется компиляцией, а программы, выполняющие этот процесс, - компиляторами. Компиляторы созданы сегодня абсолютно для всех более-менее популярных языков программирования, в том числе и для Бейсика.
Есть и другой подход. Каждая команда исходного текста не переводится в машинный код, а сразу исполняется. Конечно, исполняет ее не процессор (он и не подозревает о существовании Бейсика или Фортрана, а способен только обрабатывать числа, кодирующие элементарные инструкции), а специальная программа-интерпретатор, которая интерпретирует исходный текст в соответствии с заложенным в инструкции языка смыслом, и.... программирования (хотя и не для всех) созданы и компиляторы, и интерпретаторы. Исключениями являются языки низкого уровня (Ассемблер), которые не имеет смысла интерпретировать, и языки, обладающие определенной машинной независимостью (компиляция программы уничтожит эту независимость). При использовании одного и того же стандарта языка программирования результат выполнения программы под управлением интерпретатора и результат запуска исполняемого файла, созданного компилятором, полностью совпадут.
Все же, у каждого из этих подходов есть серьезные плюсы и серьезные минусы. Один из главных недостатков компиляторов - это высокая трудоемкость их создания, для чего требуется многолетняя работа большой группы высококлассных специалистов.
Все профессиональные группы разработчиков применяют компиляторы - ведь им надо создавать быстро работающий и компактный продукт, а для обучения программированию лучше всего подходит интерпретатор, позволяющий исследовать изучаемый язык с самых разных сторон и ставить различные эксперименты, не опасаясь, что, это приведет к краху операционной системы. Поэтому в состав DOS был включен именно интерпретатор QBasic. Надо отметить, и компиляторы, и интерпретаторы, особенно сделанные профессионально, бесплатно практически не распространяются, поэтому QB очень хороший путь к освоению основных понятий программирования.
Кроме того, тексты программ, отлаженных с помощью интерпретатора, можно при необходимости откомпилировать. Практически для всех языков, для которых разработаны интерпретаторы, выпущены и компиляторы. Есть, в частности, компилятор и для Бейсика - он называется Microsoft Visual Basic for MS-DOS (а вот первые версии Microsoft Visual Basic for Windows - интерпретаторы). Причем компилировать тексты программ, подготовленных в интерпретаторе, удается довольно просто: надо только придерживаться общепринятых соглашений к используемому языку и не применять нестандартных конструкций, специфичных только для интерпретатора.
На самом деле тексты программ, создающихся в интерпретаторах, довольно часто все же компилируются в некоторый промежуточный код. Это не машинный код, а набор высокоуровневых команд абстрактной вычислительной машины, который в дальнейшем интерпретировать удается значительно быстрее, чем обычный текст, набранный в редакторе, который еще надо разобрать, выделить отдельные слова, понять смысл.
Компиляция в промежуточный код получила сегодня очень широкое распространение, во многом потому, что такой промежуточный код, если его структуру хорошо продумать, можно интерпретировать очень быстро (за исключением чисто счетных задач), и при этом подобный код не будет зависеть от операционной системы: глав: чтобы для конкретного компьютера был реализован интерпретатор этого кода. То есть даже скомпилированную в промежуточный код программу удастся без изменений запускать на самых разных аппаратных платформах: и на персональных компьютерах, и на суперЭВМ.
По такой схеме создан стремительно набирающий популярность язык Java. Для него был специально разработан промежуточный байт-код, (каждая команда этого кода кодируется ровно одним байтом), интерпретируемый гак называемой Java-машиной (JVM), которая реализована практически для всех существующих ныне операционных систем. То есть, написав программу на Java в Windows, ее потом можно будет запускать и в Unix, и в OS/2, и в Sun Solaris и т. д.
Эта идея оказалась настолько удачной, что компиляторы в байт-код создаются и для других языков программирования, для которых ранее имелись только обычные компиляторы в машинный код. В частности, Microsoft пообещала, что в одной из очередных версий ее средств разработки (не исключено, что это будет именно Visual Basic) появится возможность компиляции программ на Бейсике в байт-код, что позволит разрабатывать приложения для самых разных компьютерных платформ.
Вопросы
На какие классы делятся языки программирования? К какому классу относится язык программирования Pascal? Для чего предназначены трансляторы? Приведите примеры высокоуровневых языков программирования.4.Общие сведения о языке программирования PASCAL.
Для создания компьютерных программ используют языки программирования. Никлас Вирт, специалист по вычислительной технике, работавший в институте Информатики в Цюрихе, в конце 60-х годов XX - века создал язык программирования и в 1971 году опубликовал описание своего языка. Этот язык был назван PASCAL в честь Блеза Паскаля - французского математика, физика и философа XVII века.
В 1973 году для языка программирования Паскаль был разработан первый транслятор.
Турбо Паскаль - это язык программирования, одна из особенностей которого состоит в наличии ряда мощных средств подготовки, редактирования, компиляции и отладки программ.
К достоинствам Турбо Паскаля можно отнести:
- простоту и естественность основных конструкций языка, что позволяет быстро его освоить и создавать алгоритмически сложные программы;
- возможность использования средств представления структур данных, что обеспечивает удобство работы как с числовой, так и символьной информацией;
- наличие отладчика и оптимизирующих свойств транслятора, что позволяет создавать достаточно надежные программы;
- соответствие языка структурному программированию, что делает программы наглядными и упрощает их разработку и отладку;
- наличие большой библиотеки процедур и функций для работы как с текстовой, так и с графической информацией, что позволяет создавать программы с развитым и удобным интерфейсом пользователя.
В настоящее время реализованный на ЭВМ Турбо паскаль, разработанный фирмой Borland International, позволяет использовать практически все возможности ПК.
5.Алфавит языка программирования Паскаль.
Язык программирования PASCAL, как и любой другой язык имеет свой алфавит. В него входят:
1. Латинские буквы: строчные и прописные и «_» (нижнее подчеркивание, используемое для формирования идентификаторов);
2. Цифры от 0 до 9;
3. Специальные символы, применяемые для форматирования знаков арифметических операций, выражений, комментариев, синтаксических разделителей при написании программы:
+ | { } фигурные скобки |
- | . |
* | , |
/ дробная черта | : |
= | ; |
> больше | ‘ ‘ - апостроф |
< | # номер |
[ ] квадратные скобки | $ знак денежной единица |
( ) круглые скобки | ^ каре (крышка) |
@ коммерческое «ЭТ» | пробел |
Кроме того, используются комбинации из специальных символов, образующих составные символы:
:= присвоение
<> не равно
. . диапазон
(* *) альтернатива{ }
(. .) альтернатива [ ]
<= / >= меньше/больше или равно
Неделимые последовательности символов алфавита образуют конструкции отделенные друг от друга разделителями и несущие определённый смысл в программе.
В качестве разделителя может служить:
а) пробел
б) ;
в) комментарий
Конструкции, с помощью которых меняется программа, подразделяются на зарезервированные (служебные ) слова и идентификаторы.
Служебные слова являются составной частью языка программирования, имеют фиксированное значение и начертания. Пример: begin, end, program, for, var и т. д.
6.Величины.
При написании программы для переменных величин вводятся обозначения, так как это делается в курсе алгебры. Такое обозначение в языке программирования называют именем величины. Имя в Pascal - слово из букв, цифр и знаков подчеркивания, начинающихся с буквы. В качестве имени нельзя использовать служебное слово. Каждое имя соответствует некоторой ячейке памяти, куда записывается значение переменной.
Константы и переменные.
Программа имеет смысл, если она обрабатывает какие-либо данные.
Данные - информация, которая представлена в виде, позволяющем автоматизировать процессы её передачи, получения и обработки посредством ЭВМ.
Как и другие языки программирования, в зависимости от способа хранения и обработки на ЭВМ Тurbo Pascal интерпретирует (понимает) данные как константы или переменные.
Константы - данные, значения которых установлены в описательной части программы в процессе выполнения программы не изменяются.
Объявление констант содержит идентификатор (имя), которое является обозначением константы внутри раздела описаний. Для определения значения констант служит зарезервированное слово Const.
Синтаксис описания констант:
Const имя_константы = значения_константы;
Пример: Const Max=1500; Al=’Y’; Seg=’Сегмент’;
В программе необходимо хранить исходные (входные) данные, промежуточные данные и результат для того, их можно было использовать. Такие данные, как правило, хранятся в переменных.
Переменные - данные, тип которых определяется в описательной части проги и в процессе её выполнения изменяются.
Переменные подразделяются на простые и сложные.
Простые - переменные, способные хранить один элемент данных.
Сложные - переменные, способные хранить некоторое количество элементов данных.
Каждая переменная, как и константа, имеет соё имя и принадлежит к определенному типу величин.
Тип констант автоматически распознаётся компилятором без предварительного описания. Тип переменных должен быть описан перед тем, как с переменными будут выполняться какие-либо действия.
Для описания переменных используют служебное слово Var.
Синтаксис описания переменной
Var имя_переменной: тип
Пример: Var Sum1:real; - вещественный тип
i, j:integer; - целочисленный тип
7.Типы данных
Если компьютеру предписано программой осуществить пересылку, хранение или обработку информации, то программист должен указать, какие значения может принимать каждая величина, которая участвует в информационных процессах, определить совокупность операций, допустимых над этими величинами. Для этого в язык программирования PASCAL введено понятие типы данных.
Под типами данных понимают множество значений, которые могут принимать объекты программы, и совокупность операций, допустимых над значениями этих объектов.
Типы данных условно можно разделить на скалярные и определяемые пользователем.
Скалярные типы данных - предопределены в языке программирования; их смысл в языке не изменен.
Скалярные типы данных в свою очередь подразделяются на целочисленные, вещественные, символьные, логические (булевские).
Типы данных.
Вид | Тип | Наименование | Допустимые значения | Занимаемые поля |
Целочисленный | Shortint Integer Longint Byte Word | Короткое целое Целое Длинное целое Байт Слово | -128…127 -32768..32767 … 0…255 0…65535 | 1 байт 2 байта 4 байта 1 байт 2 байта |
Вещественный | Real Single Double | Вещественный Вещественный с одинарной точностью Вещественный с двойной точностью | 2.9-39…1.738 1.5-45…3.438 5-324…1.7308 | 6 байт 4 байта 8 байт |
Символьный | Char | Символ | Множество символов (256) таблица ASCII | 8 бит или 1 байт |
Булевский | Boolean | Логический | True, False | 1 байт |
Тurbo Pascal поддерживает скалярные типы, определяемые самим пользователем: перечисляемые и ограниченные. Данные этих типов занимают 1 байт памяти и поэтому не могут содержать более 256 элементов. Их применение значительно улучшает наглядность программы, делает более легким поиск ошибок и экономит память.
На основе скалярных типов данных программист может определить новые, собственные скалярные типы, руководствуясь правилами:
для определения перечисляемого типа необходимо перечислить все возможные его значения, каждое такое значение будет определяться только именем; для определения ограниченного типа нужно ограничить (сузить) допустимый диапазон значений некоторого скалярного типа.Вопросы:
1. Из чего состоит алфавит ЯП Паскаль?
2. С какими величинами работает ЯП Паскаль?
3. Дайте определения следующим понятиям: Данные, Константа, Переменная.
4. Что мы понимаем под словосочетанием «Тип данных». Какие типы данных определены в ЯП Паскаль?
5. Дайте характеристику скалярным типам данных.
ЛЕКЦИЯ № 5 «АРХИТЕКТУРА ПЕРСОНАЛЬНОГО КОМПЬЮТЕРА»
План
Устройства, входящие в состав компьютера Принципы построения компьютера Устройство системного блока Устройства ввода информации Устройства вывода информации1. Устройства, входящие в состав компьютера
Состав компьютера — это тот минимально необходимый комплект устройств, без наличия хотя бы одного из которых компьютер перестает быть компьютером и превращается в бессмысленный набор оборудования.
Полнофункциональным (т. е. выполнять те функции, для которых был предназначен) компьютер становится при добавлении периферийных устройств к устройствам, входящим в состав компьютера.
Для графической операционной системы MS WINDOWS:
1) системный блок;
2) монитор;
3) клавиатура;
4) манипулятор «мышь»
2. Принцип построения ПК
В основу архитектуры современных персональных компьютеров положен магистрально-модульный принцип. Модульный принцип позволяет потребителю самому комплектовать нужную ему конфигурацию компьютера и производить при необходимости ее модернизацию. Модульная организация компьютера опирается на магистральный (шинный) принцип обмена информацией между устройствами.
Магистрально-модульный принцип построения компьютера

Магистраль
Магистраль (системная шина) включает в себя три многоразрядные шины: шину данных, шину адреса и шину управления, которые представляют собой многопроводные линии. К магистрали подключаются процессор и оперативная память, а также периферийные устройства ввода, вывода и хранения информации, которые обмениваются информацией на машинном языке (последовательностями нулей и единиц в форме электрических импульсов).
Шина данных. По этой шине данные передаются между различными устройствами. Например, считанные из оперативной памяти данные могут быть переданы процессору для обработки, а затем полученные данные могут быть отправлены обратно в оперативную память для хранения. Таким образом, данные по шине данных могут передаваться от устройства к устройству в любом направлении.
Шина адреса. Выбор устройства или ячейки памяти, куда пересылаются или откуда считываются данные по шине данных, производит процессор. Каждое устройство или ячейка оперативной памяти имеет свой адрес. Адрес передается по адресной шине, причем сигналы по ней передаются в одном направлении — от процессора к оперативной памяти и устройствам (однонаправленная шина).
Шина управления. По шине управления передаются сигналы, определяющие характер обмена информацией по магистрали. Сигналы управления показывают, какую операцию — считывание или запись информации из памяти — нужно производить, синхронизируют обмен информацией между устройствами и так далее.
3. Устройство системного блока
Все основные компоненты настольного компьютера находятся внутри системного блока: системная плата с процессором и оперативной памятью, накопители на жестких и гибких дисках, CD-ROM и др. Кроме этого, в системном блоке находится блок питания.
Задняя панель системного блока служит для подключения к нему периферийных устройств. Каждый разъем не похож на другой, поэтому перепутать, что куда подключить, очень сложно.
Системная плата.
Основным аппаратным компонентом компьютера является системная плата. На системной плате реализована магистраль обмена информацией, имеются разъемы для установки процессора и оперативной памяти, а также слоты для установки контроллеров внешних устройств.
На системной плате располагаются следующие элементы:
G микропроцессор;
G сопроцессор (компьютер может работать и без него);
G платы оперативной памяти;
G микросхемы быстрой памяти (КЭШ);
G микросхемы базовой системы ввода-вывода (BIOS);
G контроллеры (платы расширения), управляющие различными устройствами (дисководами, монитором, мышкой, клавиатурой и т. д.).
Процессор
В компьютере устройством, которое обрабатывает информацию, является процессор.
Процессор может обрабатывать различные виды информации: числовую, текстовую, графическую, видео- и звуковую информацию. Процессор является электронным устройством, поэтому различные виды информации должны обрабатываться в нем в форме последовательностей электрических импульсов.
Такие последовательности электрических импульсов можно записать в виде последовательностей нулей и единиц (есть импульс — единица, нет импульса — нуль), которые называются машинным языком. Машинный язык оперирует числами в двоичной системе счисления. При записи двоичных чисел используются только две цифры: «0» и «1».
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 |


