Билет 20
Что такое интерфейс?
Как развивались и классифицируются языки программирования?
1 Интерфейс — совокупность методов и правил (алгоритмов) взаимодействия устройств (аппаратных) и программ между собой или с пользователем, а также средств, реализующих это взаимодействие
2 В 40-х гг. XX столетия начинает развиваться программирование. При работе на первых ЭВМ программы записывались в цифровых кодах, т. е. на машинном языке программирования (ЯП). Запись программ производилась в двоичной, а затем восьмеричной системе счисления. Это был трудоемкий процесс, занимавший много времени.
Для упрощения этой работы были разработаны автокоды, к которым в настоящий момент можно отнести ЯП Assembler, что позволяло записывать вид выполняемой операции (сложить, умножить и т. п.) набором символов и значительно упрощало написание программ. Языки программирования такого вида называют языками низкого уровня.
В середине 1950-х гг. появляются первые алгоритмические ЯП: Алгол и Фортран.
Дальнейшее развитие языков программирования было связано, во-первых, с их специализацией по направлениям научной и технической деятельности, а во-вторых, с возможностью их использования пользователями, не имеющими специальной подготовки.
Например, появившийся в середине 60-х гг. ЯП Basic(Бейсик) получил широкое распространение и в дальнейшем стал использоваться как язык описания элементов операционных систем (ОС). Затем в измененном виде он стал первым объектно-ориентированным ЯП.
ЯП Симула был разработан для моделирования систем с дискретными событиями и работал с параллельно функционирующими процессами; в нем впервые появились такие элементы, как классы и объекты.
В ЯП Pascalбыла введена P-system, транслировавшая программу в P-code— код идеальной ЭВМ, позволяющий затем перевести программу на реальный машинный код данного процессора.
ЯП Пролог содержал: программные модули, базу данных — набор предикатов и утверждений — и объекты — термы.
Распространенный машинно-ориентированный ЯП СИ, появившийся в 80-х гг. и близкий к Assembler, позволяет наиболее полно использовать возможности различных процессоров.
Классификация: 1) Машинно-зависимый язык программирования — формальный язык для описания программ решения задач, содержание и правила которого реализуются аппаратными средствами конкретной ЭВМ (язык низкого уровня). Программа, составленная на машинном языке, является последовательностью команд, выполняемых процессором данной ЭВМ.
2. Машинно-ориентированный язык программирования — система команд/операторов, базирующаяся на машинных языках программирования, позволяющая наиболее полно использовать возможности процессора (язык среднего уровня).
3. Машинно-независимый язык программирования—язык и написанные на нем программы, не зависящие от свойств конкретной вычислительной машины, в них используют программы-трансляторы, которые позволяют осуществлять запись программ с помощью системы комацд/операторов вне зависимости от платформы данного ПК:
функциональные — декларативные языки программирования, основанные на понятии функции, описании зависимости результата от аргументов с помощью других функций и элементарных операций. Функции только задают зависимость и не определяют порядок вычислений. В функциональных языках программирования нет понятий переменной и присваивания, поэтому значение функции зависит только от ее аргументов и не зависит от порядка вычислений;
процедурные (операторные), идущие от понятия «процедура» — предписание в данном языке программирования, предназначенное для задания некоторого завершенного действия в процессе переработки информации:
— специализированный язык программирования — предназначен для решения специальных, узконаправленных задач определенного класса;
— универсальный язык программирования — предназначен для решения широкого круга задач; реализует основные концепции структурного программирования с использованием наборов операторов, команд и процедур и позволяет использовать большинство возможностей управления аппаратными средствами ЭВМ (язык высокого уровня):
- процессно-ориентированный язык программирования — базируется на методах структурного анализа и состоит из набора инструментальных средств, позволяющих визуально разрабатывать модели в заданной области деятельности;
- объектно-ориентированный язык программирования — программа на этом языке задается описанием поведения совокупности взаимосвязанных объектов, обменивающихся запросами. Получив запрос, объект выдает ответ на полученный запрос, посылает запросы другим объектам, получает ответы, изменяет значения своих внутренних переменных. Механизм запросов в объектно-ориентированных языках программирования отличается от механизма процедур в процедурных языках тем, что при выполнении запроса объектом могут быть непосредственно изменены только значения переменных этого объекта.
Для дальнейшего изучения выберем объектно-ориентирован- ный язык программирования VisualBasic, в котором реализована концепция событийно-управляемого программирования. VisualBasicиспользуется в качестве базового языка для создания макросов и записи программных кодов в приложениях Word, Excelи т. д., что позволяет пользователю создавать собственные разработки или расширять возможности стандартных приложений.
Реализация решения любой задачи на любом выбранном языке программирования является завершающей стадией процесса разработки программных средств (программирования в широком смысле). Ей предшествует значительная работа, связанная с анализом требований к программе и ее проектированием.