Файл: Языки гипертекстовой разметки (Поколения языков).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 04.04.2023

Просмотров: 293

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

ВВЕДЕНИЕ

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

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

Актуальность выбранной темы также обуславливается тем, что прогресс компьютерных технологий определяет процесс появления новых разнообразных знаковых систем для записи алгоритмов – языков программирования.

Объектом исследования послужила классификация языков программирования и критерии выбора среды и языка разработки.

Исходя из вышесказанного, определяется цель исследования: изучение классификации языков программирования, анализ критериев выбора среды и языка программирования.

Для достижения данной цели необходимо выполнить следующие задачи:

  1. рассмотреть классификацию языков программирования;
  2. изучить критерии выбора среды разработки;
  3. проанализировать критерии выбора языка разработки.

Глава 1. Классификация языков

1.1 Базовая иерархия языков

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


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

Самой базовой классификацией языков программирования и гипертекстовой разметки является классификация по уровням. И согласно данной классификации выделяют языки программирования низкого уровня и высокого уровня.

Языки программирования низкого уровня

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

Трансляторы делятся на:

  • компиляторы – превращают текст программы в машинный код, который можно сохранить и затем использовать уже без компилятора (примером являются исполняемые файлы с расширением *. exe).
  • интерпретаторы – превращают часть программы в машинный код, выполняют и после этого переходят к следующей части. При этом каждый раз при выполнении программы используется интерпретатор[3].

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

Определенные различия имеются и в синтаксисе программ под разные компиляторы. Правда, центральные процессоры для компьютеров фирм AMD и Intel практически совместимы и отличаются лишь некоторыми специфическими командами. А вот специализированные процессоры для других устройств, например, видеокарт, телефонов содержат существенные различия[4].


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

При этом языки низкого уровня обладают и определенными недостатками, в частности, такими как:

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

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

Ассемблер – язык низкого уровня, что широко применяется до сих пор[5].

1.2 Языки программирования высокого уровня

Можно сказать более понятными человеку, чем компьютеру. Особенности конкретных компьютерных архитектур в них не учитываются, поэтому созданные программы легко переносятся с компьютера на компьютер. В основном достаточно просто перекомпилировать программу под определенную компьютерную архитектурную и операционную систему. Разрабатывать программы на таких языках гораздо проще и ошибок допускается меньше. Значительно сокращается время разработки программы, что особенно важно при работе над большими программными проектами[6].

К языкам программирования высокого уровня относятся:

  • Фортран
  • Кобол
  • Алгол
  • Pascal
  • Java
  • языки семейства C
  • Objective C
  • Smalltalk
  • Delphi

Недостатком языков высокого уровня является больший размер программ по сравнению с программами на языке низкого уровня. Поэтому в основном языки высокого уровня используются для разработок программного обеспечения компьютеров и устройств, которые имеют большой объем памяти. А разные подвиды ассемблера применяются для программирования других устройств, где критичным является размер программы[7].


За 60 с лишним лет развития ЭВМ были разработаны сотни языков программирования, многие из которых используются и сейчас (например Бейсик и Фортран были впервые применены уже в конце 1950–х годов), ежегодно появляется несколько новых языков промышленного применения (не считая десятков экспериментальных).

Для того чтобы разобраться в них, языки классифицируют по важнейшим признакам:

  • эволюционным – поколения языков;
  • функциональным – по назначению, исполняемым функциям (описательные, логические, математические);
  • уровню языка – то есть уровню обобщения в словах–операторах языка (низкого, среднего, высокого);
  • области применения – то есть где применяется язык (системные, сетевые, встроенные и пр[8].

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

Базовая иерархия языков программирования является системно–параллельной иерархией, то есть пакета тесно связанных иерархий: этапов программирования, поколений языков программирования и самих языков – протоколов преобразования структурной и алгоритмической информации: структурно–дескриптивного описания данных и алгоритма их обработки. Поэтому все языки делятся на два полярных типа: дескриптивные (декларативные) и алгоритмические (командные). Однако, так как в любом алгоритме существует необходимость описания данных и структур, а в любой конструкции – порядок её сборки, то реальные языки являются частично декларативными, а частично алгоритмическими, что отражается в наличии описательной и командной (рецептурной) частей любой компьютерной программы[9].

Рассмотрение пакета параллельных иерархий языков программирования целесообразно начинать с иерархии этапов программирования.

Этап 1.

Постановка задачи программирования – включает формализацию цели программирования, часто количественно–математическую, но всегда – формально–логическую, позволяющую осуществить все последующие этапы и достичь поставленной цели программирования после выполнения его этапов.

Этап 2.

Алгоритмизация – включает построение блок–схемы алгоритма, то есть последовательных шагов обработки данных и структуры самих данных для работы программы.

Этап 3.


«Кодирование» – (от ам. Традиционного слэнга «coding») – написание текста программы на базовом текстовом языке программирования, который может быть понятен транслятору – программе, преобразующей текст в бинарный код.

Этап 4.

Трансляция – перевод программы в бинарный «объектный» код, производимая транслятором без участия человека, не считая процесса отладки.

Этап 5.

Сборка исполняемого модуля программы – представляет собой автоматическую стыковку всех объектных модулей, необходимых для получения работающей программы – последовательности команд процессора компьютера, на котором выполняется задуманный алгоритм в виде двоичного кода, понятного процессору[10].

Первый этап программирования – это наиболее общий, высший иерархический уровень процесса программирования, а пятый – выполняемый автоматически компьютером – низший. Здесь к мету заметить, что отношение программистов к этим этапам сразу определяет и иерархическое положение программиста. Самоучки, любители, фрилансеры часто пропускают 2 первых этапа программирования, что часто превращает их труд в «мартышкин» – программа либо не работает, либо выполняет не то, что хотел программист. Грамотные техники–программисты (уровень колледжа) обычно начинают со второго этапа, так как первый – постановку задачи им дает руководитель проекта. Перечисленные этапы программирования в точности соответствуют поколениям языков (generation of languages, GL) – иерархии компьютерных языков, только в обратном порядке[11].

1.3. Поколения языков программирования

В истории языков программирования принято выделять несколько поколений. Рассмотрим их последовательно

Поколение 1GL.

Данное поколение характеризуется использованием машинных языков низкого уровня, представляющих собой набор команд в двоичном коде. Данные команды процессор выполняет непосредственно, если команды были введены в память либо в АЛУ процессора. Конкретными примерами языков данного поколения являются язык процессора IBM–PC, язык ARM–процессора и др.

Поколение 2GL.

К поколению 2GL относятся ассемблеры, автокоды, системные языки, языки среднего уровня – текстовые языки, понятные человеку и однозначно переводимые (транслируемые) в языки низкого уровня, то есть машинный двоичный код. Программирование на 2GL на порядок производительнее, чем на 1GL, так как более удобны для человеческого восприятия[12]. Примеры: Макроссемблер, С, PL/1.