Мы поможем в написании ваших работ!
ЗНАЕТЕ ЛИ ВЫ?
|
Языки программирования: эволюция, классификация.
Содержание книги
- Структурный и объектно-ориентированный подход к проектированию автоматизированной информационной системы
- Критерии выбора персональных компьютеров
- Организация труда разработчиков АИС
- Классификация арм по функциональному признаку
- Импортирование и экспортирование структуры базы данных.
- Язык запросов SQL, назначение и область применения, типы данных, схема базы данных.
- Создание таблиц с использованием языка SQL. Добавление данных фильтрация данных, ключи.
- Организация взаимодействия клиент-сервер. Перенос персональной базы данных на сервер.
- Технология ODBC, ADO, bde доступ к базам данных. Администрирование сервера со стороны клиента.
- Виды серверного программного обеспечения: файловые серверы, информационные серверы, web- серверы, серверы приложений, серверы предоставляющие свои аппаратные ресурсы.
- Состав программного обеспечения автоматизированных информационных систем.
- Программирование полного и неполного ветвления
- Операционные системы и среды
- Машинно - зависимые свойства операционных систем.
- Управление виртуальной памятью.
- Защищенность и отказоустойчивость операционных систем.
- Принципы построения операционных систем.
- Принцип функциональной избирательности
- Состояние существования процесса.
- Файлы конфигурации config.sys и autoexec.bat. Синтаксис команд в файлах config.sys и autoexec.bat.
- Назначение базовой системы ввода-вывода.
- Способы описания алгоритмов. Описание алгоритмов с помощью языка блок-схем. Правила составления блок-схем.
- Виды алгоритмов и способы их описания.
- Алгоритмы: базовые структуры.
- Данные. Понятие типа данных.
- Языки программирования: эволюция, классификация.
- Декларативные языки программирования
- Языки обработки символьной информации.
- Языки программирования интеллектуальных решателей.
- Высокоуровневый язык программирования
- Низкоуровневый язык программирования
- Понятие, назначение и составные элементы систем программирования
- Машинно-независимые системы программирования
- Методы построения алгоритмов.
- Сортировка посредством выбора
- Встроенные функции компилятора
- Основные компоненты системного блока пк (основные компоненты и типоразмеры системной платы, назначение, типы и виды шин, назначение и основные характеристики набора микросхем системной платы).
- Основные характеристики процессоров, типы процессоров и основные современные модели.
- Интерфейсы подключения периферийных устройств ПК. Общие принципы построения.
- Видеоподсистемы. Основные характеристики мониторов. Типы видеоадаптеров и их основные характеристики.
- Аудиоподсистемы. Принципы обработки звуковой информации. Состав звуковой подсистемы ПК.
- Принтеры. Принципы работы устройств вывода информации на печать. Технические характеристики матричных, струйных и лазерных принтеров.
- Сканеры. Классификация сканеров, технические характеристики сканеров.
- Портативные или ручные сканеры
- Основные компоненты сетевого оборудования и принцип работы модема.
- Основные виды угроз безопасности ИС.
- Виды умышленных угроз безопасности информации
- Организация антивирусной безопасности.
- Показатели технологической безопасности информационных систем
- Ресурсы, необходимые для обеспечения технологической безопасности информационных систем
Первичные языки программирования появились совсем недавно. По словам различных исследователей в середине двадцатого века. Первичные языки программирования были примитивными и ориентировались на численные расчеты. И теоретические научные расчеты, и прикладные задачи. Программы, написанные с помощью ранних языков программирования, являлись линейными последовательностями элементарных операций с регистрами, которые хранили в себе информацию. Первичные языки программирования оптимизировались специально для аппаратной архитектуры определенного компьютера.
Работоспособная на одной вычислительной машине программа чаще всего на другой не выполнялась. Первичные языки программирования зависели от среды вычислений и примерно соответствовали нынешним языкам ассемблера либо машинным кодам. В следующем десятилетии появились языки программирования, которые были на более высоком уровне, по сравнению с предшественниками. Различие заключается в увеличении трудовой эффективности разработчиков с помощью абстрагирования от определенных частей аппаратного обеспечения.
Учитывая то, что программа являлась набором директив, обращенных к компьютеру, этот подход назвали императивным.
История развития ЯП Известно, что первым программистом была женщина - леди Ада Лавлейс, дочь лорда Байрона. Она разрабатывала программы для одного из первых механических компьютеров, созданного в начале XIX века английским ученым Чарльзом Беббиджом. Однако настоящее программирование в современном понимании началось с момента создания первой электронной вычислительной машины. Но теме не менее, имя этой замечательной женщины - Ada - присвоено одному из самых мощных современных ЯП, который является базовым для министерства обороны США.
Первые ЭВМ, созданные человеком, имели небольшой набор команд и встроенных типов данных, но позволяли выполнять программы на машинном языке. Машинный язык (МЯ) - единственный язык, понятный ЭВМ. Он реализуется аппаратно: каждую команду выполняет некоторое электронное устройство. Программа на МЯ представляет собой последовательность команд и данных, заданных в цифровом виде. Например, команда вида 1А12 в 16-ричном виде или 0001101000010010 в двоичном виде означает операцию сложения (1А) содержимого регистров 1 и 2. Данные на МЯ представлены числами и символами. Операции являются элементарными и из них строится вся программа. Ввод программы в цифровом виде производился непосредственно в память с пульта ЭВМ либо с примитивных устройств ввода. Естественно, что процесс программирования был очень трудоемким, разобраться в программе даже автору было довольно сложно, а эффект от применения ЭВМ был довольно низким. Этот этап в развитии ЯП показал, что программирование является сложной проблемой, трудно поддающейся автоматизации, но именно программное обеспечение определяет в конечном счете эффективность применения ЭВМ. Поэтому на всех последующих этапах усилия направлялись на совершенствование интерфейса между программистом и ЭВМ - языка программирования. Стремление программистов оперировать не цифрами, а символами, привело к созданию мнемонического языка программирования, который называют ассемблером, мнемокодом, автокодом. Этот язык имеет определенный синтаксис записи программ, в котором, в частности, цифровой код операции заменен мнемоническим кодом. Например, команда сложения записывается в виде AR 1,2 и означает сложение (Addition) типа регистр-регистр (Register) для регистров 1 и 2. Теперь программа имеет более удобочитаемую форму, но ее не понимает ЭВМ. Поэтому понадобилось создать специальную программу транслятор, который преобразует программу с языка ассемблера на МЯ. Эта проблема потребовала, в свою очередь, глубоких научных исследований и разработки различных теорий, например теорию формальных языков, которые легли в основу создания трансляторов. Практически любой класс ЭВМ имеет свой язык ассемблера. На сегодняшний день язык ассемблера используется для создания системных программ, использующих специфические аппаратные возможности данного класса ЭВМ. Следующий этап характеризуется созданием языков высокого уровня (ЯВУ). Эти языки являются универсальными (на них можно создавать любые прикладные программы) и алгоритмически полными, имеют более широкий спектр типов данных и операций, поддерживают технологии программирования. На этих языках создается неисчислимое множество различных прикладных программ. Принципиальными отличиями ЯВУ от языков низкого уровня являются: · использование переменных; · возможность записи сложных выражений; · расширяемость типов данных за счет конструирования новых типов из базовых; · расширяемость набора операций за счет подключения библиотек подпрограмм; · слабая зависимость от типа ЭВМ.
С усложнением ЯП усложняются и трансляторы для них. Теперь в набор инструментов программиста, кроме транслятора, входит текстовый редактор для ввода текста программ, отладчик для устранения ошибок, библиотекарь для создания библиотек программных модулей и множество других служебных программ. Все вместе это называется системой программирования. Наиболее яркими представителями ЯВУ являются FORTRAN, PL/1, Pascal, C, Basic, Ada.
Одновременно с развитием универсальных ЯВУ стали развиваться проблемно-ориентированные ЯП, которые решали экономические задачи (COBOL), задачи реального времени (Modula-2, Ada), символьной обработки (Snobol), моделирования (GPSS, Simula, SmallTalk), численно-аналитические задачи (Analitic) и другие. Эти специализированные языки позволяли более адекватно описывать объекты и явления реального мира, приближая язык программирования к языку специалиста в проблемной области. Другим направлением развития ЯП является создание языков сверхвысокого уровня (ЯСВУ). На языке высокого уровня программист задает процедуру (алгоритм) получения результата по известным исходным данным, поэтому они называются процедурными ЯП. На ЯСВУ программист задает отношения между объектами в программе, например систему линейных уравнений, и определяет, что нужно найти, но не задает как получить результат. Такие языки еще называют непроцедурными, т.к. сама процедура поиска решения встроена в язык (в его интерпретатор). Такие языки используются, например, для решения задач искусственного интеллекта (Lisp, Prolog) и позволяют моделировать мыслительную деятельность человека в процессе поиска решений. К непроцедурным языкам относят и языки запросов систем управления базами данных (QBE, SQL).
Классификация ЯП Исходя из вышесказанного, ЯП можно классифицировать по следующим признакам. 1. По степени ориентации на специфические возможности ЭВМ ЯП делятся на: · машинно-зависимые; · машинно-независимые. К машинно-зависимым ЯП относятся машинные языки, ассемблеры и автокоды, которые используются в системном программировании. Программа на машинно-зависимом ЯП может выполняться только на ЭВМ данного типа. Программа на машинно-независимом ЯП после трансляции на машинный язык становится машинно-зависимой. Этот признак ЯП определяет мобильность получаемых программ (возможность переноса на ЭВМ другого типа). 2. По степени детализации алгоритма получения результата ЯП делятся на: · языки низкого уровня; · языки высокого уровня; · языки сверхвысокого уровня. 3. По степени ориентации на решение определенного класса задач: · проблемно-ориентированные; · универсальные. 4. По возможности дополнения новыми типами данных и операциями: · расширяемые; · нерасширяемые. 5. По возможности управления реальными объектами и процессами: · языки систем реального времени; · языки систем условного времени. 6. По способу получения результата: · процедурные; · непроцедурные. 7. По типу решаемых задач: · языки системного программирования; · языки прикладного программирования. 8. Непроцедурные языки по типу встроенной процедуры поиска решений делятся на: · реляционные; · функциональные; · логические. Рассмотренная схема классификации позволяет каждому ЯП присвоить один из признаков каждого класса.
|