Справочник от Автор24
Найди эксперта для помощи в учебе
Найти эксперта
+2

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

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

Определение 1

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

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

За последние несколько десятилетий было создано множество языков программирования для различных целей:

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

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

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

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

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

Замечание 1

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

«Языки программирования компьютера» 👇
Помощь эксперта по теме работы
Найти эксперта
Решение задач от ИИ за 2 минуты
Решить задачу
Помощь с рефератом от нейросети
Написать ИИ

Ниже приведен фрагмент программы, в которой сопоставляются команды ассемблера (sub, mov, xor, callq, add) и их аргументы (справа от команд) с порождаемыми ими машинными кодами (средняя колонка). В колонке слев приводятся номера первых байт машинного кода в каждой строке.

2004b0 48 83 ec 08 sub $0x8,%rsp
2004b4 bf bc 05 20 00 mov $0x2005bc,%edi
2004b9 31 c0 xor %eax,%eax
2004bb e8 e8 fe ff ff callq getData
2004c0 48 83 c4 08 add $0x8,%rsp
2004c4 83 c0 01 add $0x1,%eax

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

let greating = 'Hello, World!'
console.log.print(greating)

легко "перевести" на обычный язык: "Пусть приветствием будет фраза 'Hello, World!'. Напечатать на консоли приветствие".

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

Замечание 2

Разделение языков на низко- и высокоуровневые представляет интерес в основном в историческом и образовательном контекстах.

Группы языков по происхождению.

В ходе эволюции языков программирования одни из них оказывались бесперспективными и сходили со сцены, другие, напротив, порождали множества языков-последователей. Одним из самых плодотворных в этом отношении оказался появившийся в начале 1970-х гг. язык Си. От него ведут свое происхождение такие мощные и до сих пор актуальные языки программирования, как C++, C#, Java, JavaScript. Синтаксис этих языков построен на использовании скобок (круглых, квадратных, фигурных) некоторых спецсимволов (||, &&).

Существует и другая ветвь развития ЯП, синтаксис которых берет свое начало от одного их первых языков программирования - Fortran. В их текстах активно используются ключевые слова (begin, end), для обозначения вложенности в вычислительные блоки широко применяются отступы и переводы строк. К таким языкам относятся Pascal и его производные, Python, CoffeeScript и др.

Интерпретируемые и компилируемые языки программирования.

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

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

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

В последние годы все чаще можно говорить о конкуренции не между языками программирования, а между парадигмами.

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

Определение 2

Парадигма программирования - набор принципов, определяющих подход к написанию алгоритмов.

К наиболее распространенным парадигмам относятся:

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

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

Дата написания статьи: 23.03.2019
Найди решение своей задачи среди 1 000 000 ответов
Крупнейшая русскоязычная библиотека студенческих решенных задач
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot