Какие бывают языки программирования перечислить. Способы реализации языков. Дальнейшее развитие языков программирования

💖 Нравится? Поделись с друзьями ссылкой

Материал из Википедии

Язы́к программи́рования - формальная знаковая система , предназначенная для записи компьютерных программ . Язык программирования определяет набор лексических , синтаксических и семантических правил, определяющих внешний вид программы и действия, которые выполнит исполнитель (обычно - ЭВМ) под её управлением.

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

Следует отметить, что существуют языки, сочетающие характеристики высокого уровня и низкого уровня. Язык был разработан с учетом следующих особенностей. Философия объектно-ориентированного программирования отличается от обычного программирования. Страхование. Существует множество ограничений, особенно для апплетов, которые ограничивают то, что вы можете и не можете сделать с критическими ресурсами компьютера. Портативный. Независимо от архитектуры. Таким же образом этот код интерпретируется разными компьютерами, вам нужно только реализовать интерпретатор для каждой платформы. Многопоточный. Язык, поддерживающий несколько потоков, является языком, который может выполнять разные строки кода одновременно. Интерпретированный. Динамический. Примечание: машинный код - это двоичный код, который компьютер понимает и может выполнять.

В это же время, в 1940-е годы, появились электрические цифровые компьютеры и был разработан язык, который можно считать первым высокоуровневым языком программирования для ЭВМ - «Plankalkül », созданный немецким инженером К. Цузе в период с по 1945 годы .

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

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

С середины 1950-х начали появляться языки третьего поколения, такие как Фортран , Лисп и Кобол . Языки программирования этого типа более абстрактны (их ещё называют «языками высокого уровня») и универсальны, не имеют жесткой зависимости от конкретной аппаратной платформы и используемых на ней машинных команд. Программа на языке высокого уровня может исполняться (по крайней мере, в теории, на практике обычно имеются ряд специфических версий или диалектов реализации языка) на любой ЭВМ, на которой для этого языка имеется транслятор (инструмент, переводящий программу на язык машины, после чего она может быть выполнена процессором).

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

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

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

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

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

Совершенствование

Важным направлением работ становятся визуальные (графические) языки программирования , в которых процесс «написания» программы как текста заменяется на процесс «рисования» (конструирования программы в виде диаграммы) на экране ЭВМ. Визуальные языки обеспечивают наглядность и лучшее восприятие логики программы человеком.

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

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

Стандартизация языков программирования

Для многих широко распространённых языков программирования созданы международные стандарты . Специальные организации проводят регулярное обновление и публикацию спецификаций и формальных определений соответствующего языка. В рамках таких комитетов продолжается разработка и модернизация языков программирования и решаются вопросы о расширении или поддержке уже существующих и новых языковых конструкций.

Где «место» на жестком диске, где вы собираетесь распаковать файловую систему. Затем мы должны установить эту файловую систему, которую мы создали. Для этого вам необходимо скомпилировать ядро ​​вашей машины с помощью опции. Либо в виде модуля, либо в одном ядре. Не забудьте перезагрузить компьютер, если вам нужно перекомпилировать ядро! Теперь вы должны скопировать все файлы, которые вам нужны, в новую файловую систему.

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

Типы данных

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

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

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

Особая система, по которой данные организуются в программе, - это система типов языка программирования; разработка и изучение систем типов известна под названием теория типов . Языки можно поделить на имеющие статическую типизацию и динамическую типизацию , а также бестиповые языки (например, Forth ).

Когда мы абстрагируем опкоды и заменяем их словом, которое является ключом к его значению, которое обычно называют мнемоническим, мы имеем понятие Ассемблерного языка. Таким образом, мы можем просто определить язык ассемблера следующим образом. Язык ассемблера - это первая абстракция машинного языка, состоящая из ассоциирования с ключевыми словами кода кода, которые облегчают его использование программистом.

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

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

Структуры данных

Системы типов в языках высокого уровня позволяют определять сложные, составные типы, так называемые структуры данных . Как правило, структурные типы данных образуются как декартово произведение базовых (атомарных) типов и ранее определённых составных типов.

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

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

  • Скорость.
  • Эффективность размера.
  • Гибкость.
С другой стороны, будучи более примитивным языком, Ассемблер имеет некоторые недостатки в отношении языков высокого уровня.

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

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

Существует несколько подходов к определению семантики языков программирования.

  • Время программирования.
  • Отличные исходные программы.
  • Опасность непредвиденного воздействия на ресурсы.
  • Отсутствие переносимости.
Процесс перевода, выполняемый переводчиками, подразумевает дополнительный процесс вычисления, который программист хочет выполнить. Следовательно, мы обнаружим, что интерпретатор всегда медленнее, чем выполнение одного и того же действия на языке ассемблера, просто потому, что он требует дополнительных затрат на перевод программы каждый раз, когда мы ее выполняем.

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

Наиболее широко распространены разновидности следующих трёх: операционного, деривационного (аксиоматического) и денотационного (математического).

  • При описании семантики в рамках операционного подхода обычно исполнение конструкций языка программирования интерпретируется с помощью некоторой воображаемой (абстрактной) ЭВМ.
  • Аксиоматическая семантика описывает последствия выполнения конструкций языка с помощью языка логики и задания пред- и постусловий.
  • Дентационная семантика оперирует понятиями, типичными для математики - множества, соответствия, а также суждения, утверждения и др.

Парадигма программирования

Язык программирования строится в соответствии с той или иной базовой моделью вычислений и парадигмой программирования.

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

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

Несмотря на то, что большинство языков ориентировано на императивную модель вычислений , задаваемую фон-неймановской архитектурой ЭВМ, существуют и другие подходы. Можно упомянуть языки со стековой вычислительной моделью (Форт , Factor , PostScript и др.), а также функциональное (Лисп , Haskell , , , РЕФАЛ , основанный на модели вычислений, введённой советским математиком А. А. Марковым-младшим и др.) и логическое программирование (Пролог).

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

В настоящее время также активно развиваются декларативные и визуальные языки программирования , а также методы и средства разработки проблемно-специфичных языков (см. Языково-ориентированное программирование).

Способы реализации языков

Языки программирования могут быть реализованы как компилируемые , интерпретируемые и встраиваемые .

Программа на компилируемом языке при помощи компилятора (особой программы) преобразуется (компилируется) в машинный код (набор инструкций) для данного типа процессора и далее собирается в исполнимый модуль , который может быть запущен на исполнение как отдельная программа. Другими словами, компилятор переводит исходный текст программы с языка программирования высокого уровня в двоичные коды инструкций процессора.

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

Разделение на компилируемые и интерпретируемые языки является условным. Так, для любого традиционно компилируемого языка, как, например, Паскаль , можно написать интерпретатор. Кроме того, большинство современных «чистых» интерпретаторов не исполняют конструкции языка непосредственно, а компилируют их в некоторое высокоуровневое промежуточное представление (например, с разыменованием переменных и раскрытием макросов).

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

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

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

Однако интерпретируемые программы выполняются заметно медленнее, чем компилируемые, кроме того, они не могут выполняться без программы-интерпретатора.

Подобный подход в некотором смысле позволяет использовать плюсы как интерпретаторов, так и компиляторов. Следует упомянуть, что есть языки, имеющие и интерпретатор, и компилятор (Форт).

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

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

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

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

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

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

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

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

Используемые символы

Современные языки программирования рассчитаны на использование ASCII , то есть доступность всех графических символов ASCII является необходимым и достаточным условием для записи любых конструкций языка. Управляющие символы ASCII используются ограниченно: допускаются только возврат каретки CR, перевод строки LF и горизонтальная табуляция HT (иногда также вертикальная табуляция VT и переход к следующей странице FF).

Ранние языки, возникшие в эпоху 6-битных символов , использовали более ограниченный набор. Например, алфавит Фортрана включает 49 символов (включая пробел): A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 = + - * / () . , $ " :

Заметным исключением является язык APL , в котором используется очень много специальных символов.

Использование символов за пределами ASCII (например, символов KOI8-R или символов Юникода) зависит от реализации: иногда они разрешаются только в комментариях и символьных/строковых константах, а иногда и в идентификаторах. В СССР существовали языки, где все ключевые слова писались русскими буквами, но большу́ю популярность подобные языки не завоевали (исключение составляет Встроенный язык программирования 1С:Предприятие).

Расширение набора используемых символов сдерживается тем, что многие проекты по разработке программного обеспечения являются международными. Очень сложно было бы работать с кодом, где имена одних переменных записаны русскими буквами, других - арабскими, а третьих - китайскими иероглифами. Вместе с тем, для работы с текстовыми данными языки программирования нового поколения (Delphi 2006 , , Java) поддерживают Unicode .

Категории языков программирования

Математически обоснованные языки программирования

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

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

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

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

Процессорное время в данных системах, как бы это выразиться, «нарезалось», и пользователи могли получать поочередно короткие отрезки этого самого времени. Компьютерное устройство стало работать намного быстрее, что позволяло пользователю чувствовать себя за терминалом так, как будто, он осуществляет свою деятельность с системой в одиночку. Аппарат, в свою очередь, простаивал меньше, так как осуществлял выполнение не одной, а сразу нескольких задач. Разделение времени, снижало в значительной степени стоимость аппаратного времени, и все, благодаря тому, что одно устройство могло совместно использоваться не одним пользователем, и даже не двумя, а сотнями.

Итак, когда стала мощность дешевле и более доступна, те, кто создавал языки программирования стали все больше задумываться о более удобном написании софта, а не о скорости их выполнения. «Небольшие» операции, то есть операции атомарного типа, которые непосредственно выполнялись устройствами аппаратов, были объединены в более «объемные» операции высокого уровня и единые конструкции, с которыми пользователям было намного удобнее и проще осуществлять свою деятельность.

Что такое языки программирования?

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

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

Для чего необходимы языки программирования?

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

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

Языки программирования подразделяются на 2 группы

Есть языки, которые имеют низкий уровень и языки, которые имеют высокий уровень.

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

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

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

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

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

Какие бывают языки программирования

Фортран

Еще в середине пятидесятых годов ученые стали создавать языки программирования. И самый первый язык такого типа был назван Фортран, и разработали его в 1957 году. Он используется для описания алгоритма решения задач научно-технического типа при помощи ЦВМ. Кроме этого, как и первые вычислительные агрегаты, язык данного типа использовался для того, чтобы проводить естественнонаучные и математические расчеты. Данный язык в усовершенствованном типе сохранился и до нашего времени, и является он, среди современных зыков, которые имеют высокий уровень, наиболее используемым при проведении исследований научного характера. Самые распространенные варианты на сегодняшний день: Фортран-I2, Фортран-I4, EASIC Fortran и их обобщения.

Алгол

Продолжаем нашу тему языки программирования. Как вы уже поняли, сейчас пойдет речь о таком языке программирования, как Алгол, который появился в 1958-1960 годах. В 1964-1968 он был усовершенствован, так появился Алгол - 68. Язык такого типа разработал комитет, в который входили ученые Америки и Европы, и отнесли его к языкам, которые имеют высокий уровень. При помощи языка такого типа можно было с легкостью переводить в программные команды алгебраические формулы. Алгол был популярным не только в странах Европы, но и в России. На все созданные спустя некоторое время языки программирования, данный вид языка оказал заметное влияние, и в частности, это коснулось языка Паскаль. Данный вид языка, в принципе, так же, как и язык Фортран, создали для разрешения задач научно-технического вида. Кроме этого, язык применяли в виде средства обучения основам программирования, то есть искусству составления софта.

Кобол

Язык программирования Кобол создали в 1959-1960 годах, и относится данный язык к третьему поколению. В первую очередь, он предназначается для разработки приложений для бизнеса и для разрешения задач экономического типа, для обработки банковских данных, для компаний по страхованию и других учреждений. «Изобретатель» Кобола - Грейс Хоппер. Обычно, за громоздкость и многословность, КОБОЛ критикуется, так как одна из целей создателей данного языка являлась максимальное приближение к английскому языку. В то же время, язык программирования имел для своего времени отличные средства для осуществления деятельности со структурами данных и файлами и это, кстати, и обеспечило ему в приложениях для бизнеса долгую жизнь. По крайней мере, в США - точно.

Лисп

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

Программа, созданная на Лиспе, состоит из последовательностей выражений, то есть форм. Результатом работы программы является вычисление этих выражений, записывающиеся в виде списка - одной из основных структур данного вида языка. Главный смысл программы Лисп «жизнь» в символьном пространстве.

Бейсик

Язык программирования бейсик разработали программисты Дартмутского колледжа США в середине шестидесятых годов. Язык основали частично на Фортране 2 и частично на Алгол - 60, также были внесены добавления, которые сделали его для работы в режиме разделения времени более удобным, а по прошествии нескольких лет он стал и удобен для текстовых обработок и матричной арифметики. Данный вид языка программирования изначально реализовали на мейнфрейме GE-265, который поддерживает большое количество терминалов. В момент своего появления, вопреки распространенному убеждению, он являлся компилируемым языком.

Данный вид языка программирования спроектировали так, чтобы учащиеся смогли писать программы, применяя терминалы с разделением времени. Он создался не только для того, чтобы разрешить проблему, которая связана с проблемными, более старыми языками, но и также он предназначался для того, чтобы им могли пользоваться «простые» пользователи, которых не интересует скорость программы, а интересует возможность использования ПК для разрешения своих задач. Большинство начинающих программистов, в силу простоты этого вида языка, начинают свой путь в программировании именно с него.

Форт

Язык программирования Форт появился в конце шестидесятых годов в начале семидесятых. Данный вид языка применяли в задачах управления различного рода системами после того как его создатель Мур Чарльз написал на нем софт, который предназначался для управления радиотелескопами обсерватории Аризоны.

Многие свойства, такие как, гибкость, интерактивность и простота «изобретения», сделали Форт эффективным и привлекательным языком в исследованиях прикладного рода и при создании средств инструментального типа. Очевидные области применения данного вида языка программирования - это встраиваемые системы управления. Кроме всего сказанного, он так же нашел применение при программировании ПК под управлением различного рода операционных систем.

Паскаль

Продолжая тему, нельзя не отметить и такой вид языка программирования, как Паскаль. Паскаль был создан в 1972 году и назвали его в честь Блеза Паскаля, который являлся в свое время великим математиком и изобретателем первого в мире арифметического агрегата. По полному праву создателем языка считается швейцарский ученый, специалист в области информатики Николаус Виртом. Новшество использовалось для обучения методами программирования. Паскаль является языком программирования общего назначения.

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

Продолжая тему языки программирования, мы решили рассказать еще об одном виде языка - это язык Ада. Язык программирования Ада был создан на основе Паскаля в конце семидесятых годов и назвали его в честь Ады Лавлейс, одаренной женщины математика. Именно эта талантливая женщина в 1843 году объяснила всему миру возможности Аналитического агрегата Чарльза Бэббиджа. Данный вид языка разработали по заказу, которое сделало Министерство обороны США, и изначально он использовался для разрешения задач управления космическими полетами.

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

Язык программирования Си на сегодняшний день является среди программистов самым популярным и используемым. Свое начало данный вид языка программирования берет от 2-ух языков, а именно, BCPL и B. Мартин Ричардс в 1967 году создал BCPL как язык, который предназначался для написания системного ПО и компиляторов. Что это такое, мы расскажем ниже. Кен Томпсон в 1970 году для создания более ранних версий ОС UNIX использовал на ПК DEC PDP-7. И в первом и во втором языке на типы не разделялись переменные - у каждого значения данных имелось в памяти одно слово.

Впервые реализовали язык программирования СИ в 1972 году на ПК DEC PDP-11. Но свою популярность и известность он сумел получить в качестве операционной системы UNIX. Все основные ОС сегодня написаны на Си или СИ++. Язык программирования Си по прошествии нескольких десятилетий имеется в наличии на большом количестве ПК. И кстати, это стоит отметить, он полностью не зависит от аппаратной части.

В традиционный язык программирования - язык Си превратился в конце семидесятых годов. Данный вид языка оснащен богатыми средствами, которые предоставляют возможность писать гибкий софт, который используется во всевозможных современных ПК.

Пролог

Ну вот, мы и подошли к концу. Нашу тему языки программирования мы закончим рассказом о последнем языке в этой сфере - и называется он Пролог. Данный вид языка считается языком программирования будущего, и создали его в начале семидесятых годов. В разработке принимали участие специалисты Марсельского университета. Назвали его от слов «ПРОграммирование на языке ЛОГики». Язык программирования был создан на основе законов математической логики. Данный вид языка, в отличие от языков программирования, которые были описаны выше, не является алгоритмическим и относится он к так называемым дескриптивным, то есть языкам описательного рода.

А сейчас пойдет разговор о том, что собой представляет компилятор и интерпретатор?

Компилятор и интерпретатор

Разработать язык, который был бы удобный для написания программы - недостаточно. Каждый язык должен иметь переводчика, который и является специальной программой - транслятором.

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

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

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

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



Рассказать друзьям