Как связаны между собой различные языки программирования? Что между ними общего и чем они различаются? В каких случаях следует применять тот или иной язык? Каковы особенности программного обеспечения предыдущих поколений и каковы современные тенденции в развитии программного обеспечения?

            За основу взят материал из книги В.В. Монахова «Язык программирования Java и среда NetBeans».

Первоначально компьютеры программировались в машинных кодах. Затем появились языки ассемблера, которые заменили команды процессоров мнемоническими сокращениями, гораздо более удобными для человека, чем последовательность нулей и единиц. Языки ассемблера принято считать языками низкого уровня, так как они ориентированы на особенности конкретных процессоров. Программы, написанные на языках ассемблера, нельзя было переносить на компьютеры с другим типом процессора из-за несовместимости наборов команд.

В 1956 году появился язык Fortran – первый язык программирования высокого уровня, то есть не ориентированный на конкретную аппаратную реализацию компьютера. Он обеспечил переносимость программ на уровне исходных кодов, но довольно дорогой ценой. Во-первых, быстродействие программ, написанных на этом языке, было в несколько раз меньше, чем для ассемблерных. Во-вторых, такие программы занимали примерно в два раза больше места в памяти компьютера, чем ассемблерные. И, наконец, эти программы не имели возможности поддерживать особенности периферийных устройств - реализовывали лишь самые общие и простые функции ввода-вывода. Тем не менее, языки программирования высокого уровня постепенно вытеснили ассемблер, поскольку обеспечивали не только переносимость программ, но и более высокую их надежность и скорость разработки сложного программного обеспечения.

Увеличение аппаратных возможностей компьютеров (рост объема памяти, повышение быстродействия), а также появление разнообразных периферийных устройств, привело к необходимости пересмотра работы программ. Массовый выпуск компьютеров потребовал унификации доступа из программ к различным устройствам, обеспечивая игнорирование особенностей их аппаратной реализации. Это можно осуществить, если обращение к устройству идет не напрямую, а через прилагающуюся программу – драйвер устройства.

Появились операционные системы – наборы драйверов и специальных программ, распределяющих ресурсы компьютера между разными программами. Соответственно, программное обеспечение стало разделяться на системное и прикладное. Системное программное обеспечение непосредственно обращается к аппаратуре компьютера, а прикладное – решает какие-либо прикладные задачи и использует аппаратные возможности компьютера не напрямую, а через вызовы программ операционной системы. Прикладные программы стали приложениями операционной системы. Этот термин означает, что программа может работать только под управлением операционной системы. Если на этом же компьютере установить другую операционную систему, то программа-приложение предыдущей операционной системы работать не будет.

Требования к прикладным и системным программам принципиально различаются. От системного программного обеспечения требуется максимальное быстродействие и минимальное количество занимаемых ресурсов, а также возможность доступа к необходимым аппаратным ресурсам. От прикладного – максимальная функциональность в конкретной предметной области. При этом быстродействие и занимаемые ресурсы не имеют значения до тех пор, пока не влияют на функциональность. Например, нет никакого значения, реагирует программа на нажатие клавиши за одну десятую или одну миллионную долю секунды.

Язык С был создан в 1972 году в одной из исследовательских групп Bell Laboratories при разработке операционной системы UNIX. Сначала была предпринята попытка написать операционную систему на ассемблере, но после появления новых компьютеров возникла необходимость в новом платформенно-независимом языке программирования высокого уровня, с помощью которого можно было бы писать операционные системы. Таким образом, язык С предназначался для создания системного программного обеспечения. Его идеология и синтаксические конструкции ориентированы на максимальную близость к аппаратному уровню реализации операций. При этом главным требованием была максимальная скорость работы и минимальное количество занимаемых ресурсов, а также возможность доступа ко всем аппаратным средствам. Язык С – это язык процедурного программирования, т.к. его базовыми конструкциями являются подпрограммы.

 

Пример программы на языке С

Язык С произвел настоящую революцию в разработке программного обеспечения, получил широкое распространение и стал промышленным стандартом. Он до сих пор применяется для написания операционных систем и программирования микроконтроллеров. Причина его популярности в том, что он смог обеспечить необходимую функциональность программного обеспечения в условиях низкой производительности компьютеров и неразвитости периферийных устройств.

Большое влияние на развитие теории программирования оказал язык Pascal, разработанный в 1974 году швейцарским профессором Никлаусом Виртом. В этом проекте сочетались два оригинальных замысла. Первый – собственно язык Pascal, предназначенный для обучения идеям структурного программирования. Второй – идея виртуальной машины. Никлаус Вирт предложил обеспечивать переносимость программ, написанных на Pascal, за счет компиляции их в набор команд некоей абстрактной машины, а не в исполняемый код аппаратной платформы. А на каждой аппаратной платформе должна работать программа, интерпретирующая эти коды. Говорят, что такая программа эмулирует (т.е. имитирует) систему команд несуществующего процессора. А саму программу называют виртуальной машиной.

В связи с ограниченностью ресурсов компьютеров и отсутствием в Pascal средств системного программирования этот язык не смог составить конкуренцию языку С, так как практически все промышленное программирование вплоть до середины 90 годов 20 века было по реализации системным.

Пример программы на языке Pascal

Развитие теории и практики программирования привело к становлению в 1967-1972 годах нового направления – объектного программирования, основанного на концепциях работы с классами и объектами. Оно обеспечило принципиально новые технологические возможности по сравнению с процедурным. Были предприняты попытки расширения различных языков программирования путем введения в них различных конструкций объектного программирования.

В 1982 году Бьёрном Страуструпом путём такого расширения языка С был создан язык С++. Он является надмножеством языка С, то есть на нём можно писать программы на чистом С, без использования каких-либо конструкций объектного программирования. Несмотря на то, что языки С и С++ долгое время использовались для написания как системных, так и прикладных программ, у них имеется два существенных недостатка. Во первых, это низкая надежность и защищенность программ, во вторых – отсутствие переносимости на уровне исполняемого кода. С массовым распространением компьютерных сетей эти недостатки стали очень существенными, поскольку вопросы безопасности при работе в локальных, и, особенно, в глобальных сетях приобретают первостепенную значимость.

В 1995 году появились сразу два языка программирования, имеющие в настоящее время огромное значение: Java, разработанный в корпорации Sun, и JavaScript, созданный в фирме Netscape Communication.

Пример программы на языке Java

Язык Java создавался как универсальный, предназначенный для прикладного программирования в неоднородных компьютерных сетях как со стороны клиентского компьютера, так и со стороны сервера. В том числе – для использования на тонких аппаратных клиентах. При этом скомпилированные программы Java работают только под управлением виртуальной Java машины, поэтому они называются приложениями Java. Синтаксис операторов Java практически полностью совпадает с синтаксисом языка С++. Язык Java гораздо сильнее типизирован по сравнению с С++.

JavaScript создавался как узкоспециализированный прикладной язык программирования HTML страниц, расширяющий возможности HTML. Язык JavaScript не имеет никакого отношения к Java. Слово Script означает в данном случае «сценарий». Включение Java в название JavaScript – рекламный трюк фирмы-производителя. Язык JavaScript также похож на С++, но, в отличие от Java, интерпретируемый. Основное его назначение – программное управление элементами веб-документами. Языки HTML и XML позволяют задавать статический, неизменный внешний вид документов, с их помощью нельзя запрограммировать реакцию на действия пользователя. JavaScript позволяет ввести элементы программирования в поведение документа. Программы, написанные на JavaScript, встраиваются в документы в виде исходных кодов (сценариев) и имеют небольшой размер.

Пример программы на языке JavaScript

Java, JavaScript и С++ относятся к объектно-ориентированным языкам программирование, все они имеют С-образный синтаксис операторов. Но как объектные модели, так и базовые конструкции этих языков принципиально различны.

В 2000 году в корпорации Microsoft была разработана платформа .NET (читается «дот-нет»). Она стала альтернативой платформе Java и во многом повторила её идеи. Основное различие заключалось в том, что для этой платформы можно было использовать произвольное количество языков программирования, а не один. Основным языком .NET стал Java-образный язык C# (читается «Си-шарп»).

Java стал первым универсальным С-образным языком прикладного программирования, что обеспечило легкость перехода на этот язык большого числа программистов, знакомых с С++. А наличие средств строгой проверки типов, ориентация на работу с компьютерными сетями, переносимость на уровне исполняемого кода и поддержка платформо-независимого графического интерфейса обеспечили большинство требований, предъявляемых к языкам прикладного программирования. Чем больше становятся быстродействие и объём памяти компьютеров, тем больше потребность в разделении прикладного и системного программного обеспечения. Поэтому среди прикладных программ с каждым годом растет доля программного обеспечения, написанного на Java и языках .NET. Но как по числу программистов, так и по числу устройств, использующих соответствующие платформы, Java в настоящее время лидирует с большим отрывом.

Автор: преподаватель Гриняк В.М.

Авторы ВГУЭС: 
Год: 
Поиск: