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

Обновлено: 02.07.2024

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

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

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

Содержание

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

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

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

Типы данных [ ]

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

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

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

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

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

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

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

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

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

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

Деривационная семантика описывает последствия выполнения конструкций языка с помощью языка логики и задания пред- и постусловий.

Денотационная семантика оперирует понятиями, типичными для математики— множества, соответствия, а также суждения, утверждения и др.

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

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

Несмотря на то, что большинство языков ориентировано на императивную модель вычислений, задаваемую фон-неймановской архитектурой ЭВМ, существуют и другие подходы. Можно упомянуть языки со стековой вычислительной моделью ( Forth , ML и др.) и логическое программирование ( Способы реализации языков [ ]

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

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

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

Разделение на компилируемые и интерпретируемые языки является условным. Так, для любого традиционно компилируемого языка, как, например, Common Language Runtime .

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

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

Современные языки программирования рассчитаны на использование ASCll , то есть доступность всехграфических символов 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 = + - * / () . , $ ' :

Заметным исключением является язык Delphi 2006 , Смотрите также [ ]


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

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

Термины и определения программирования

Ниже приведена терминология программирования для начинающих:

Алгоритм

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

Узнайте больше об алгоритмах здесь

Программа

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

Узнайте больше о программах API

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

Узнайте больше об API здесь

Аргумент (Argument)

Узнайте больше об аргументах здесь

ASCII

Булево (Boolean)

Булево выражение или логическая логика — это выражение, используемое для создания операторов, которые имеют значение ИСТИНА или ЛОЖЬ. В логических выражениях используются операторы AND, OR, XOR, NOT и NOR с условными операторами в программировании, поисковых системах, алгоритмах и формулах. Булевы выражения также называются выражениями сравнения, условными выражениями и выражениями отношений.
Узнайте больше о Boolean

Ошибка (Bug)

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

Узнайте больше об ошибках здесь

Символ (Char)

Узнайте больше о символе здесь

Объект (Objects)

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

Узнайте больше об объектах здесь

Объектно-ориентированное программирование (OOP)

Класс (Class)

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

Интерфейс командной строки

Интерфейс командной строки — это пользовательский интерфейс на основе текста. Пользовательский интерфейс используется для просмотра и управления компьютерными файлами. Интерфейсы командной строки также называются пользовательскими интерфейсами командной строки, консольными пользовательскими интерфейсами и символьными пользовательскими интерфейсами. В начале 1960-х и в течение 1970-х и 1980-х интерфейс командной строки был основным средством взаимодействия с большинством компьютеров на терминалах.

Компиляция (Compilation)

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

Условные (Conditionals)

Константы (Constants)

Константа (также известная как Const) — это термин, используемый для описания значения, которое не изменяется во время выполнения программы, в отличие от переменной. Константа не может быть изменена и останется фиксированной, а константа может быть числом, символом и строкой.

Типы данных

Тип данных — это классификация данных определенного типа. Мы, люди, можем понять разницу между именем и числом, но компьютер не может. Компьютер использует специальные внутренние коды для различения различных типов данных, которые он получает и обрабатывает. Наиболее распространенные типы данных включают в себя целочисленный тип, который представляет собой числа, тип данных с плавающей запятой, который представляет собой десятичное число, логические значения, которые имеют значение ИСТИНА или ЛОЖЬ, и символьный тип данных, который является алфавитом.

Массив (Array)

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

Декларация (Declaration)

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

Исключение (Exception)

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

Выражение (Expression)

Выражение является допустимой группой букв, символов и цифр, используемых для представления значения одной или нескольких переменных. Выражения широко используются в ряде языков программирования и во многих других программах, каждая из которых имеет свой собственный набор допустимых и запрещенных выражений. Каждое выражение содержит один или несколько операндов (объекты, которыми манипулируют) и операторы (символы, представляющие действия). Например, в выражении A + BC, A, B и C являются операндами, а + и — являются операторами.

Фрэймворк (Framework)

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

Жесткий код (Hardcode)

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

Петля (Loop)

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

Бесконечный цикл (Endless loop)

Бесконечный цикл или бесконечный цикл — это непрерывное повторение фрагмента программы, которое является вечным. Это происходит главным образом из-за условных операторов и функций, которые перенаправляют код обратно во фрагмент, делая его бесконечным.

Итерация (Iteration)

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

Ключевые слова (Keywords)

Нуль (Null)

Операнд (Operand)

Оператор (Operator)

Переменная ( Variable)

Переменная — это место, в котором хранятся временные данные в программе, которые могут быть изменены, сохранены и отображены при необходимости. Например, если у нас есть целочисленная переменная с именем XYZ, и она хранит значение 10. Если переменная снова инициируется с другим значением, она будет хранить новое значение. Поэтому, если реализовано XYZ = 9, переменная location XYZ отбрасывает значение 10 и сохраняет новое значение, равное 9.

Указатель (Pointer)

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

Язык высокого уровня (High-level language)

Язык высокого уровня (HLL) — это язык программирования, который позволяет разработчику писать программы независимо от типа или типа компьютера. Но если компьютер должен понимать язык высокого уровня, он должен быть скомпилирован в машинный язык. HLL считаются высокоуровневыми, потому что они находятся в непосредственной близости от человеческих языков и дальше от машинных языков. Языки высокого уровня включают в себя BASIC, C, C ++, Pascal, Prolog и FORTRAN.

Язык низкого уровня (Low-level language)

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

Машинный язык (Machine language)

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

Язык разметки (Markup language)

Язык разметки — это относительно простой язык, который состоит из легко понятных ключевых слов и тегов, используемых для форматирования общего вида страницы и ее содержимого. Язык определяет коды для форматирования макета и стиля страницы, только в текстовом файле. Наиболее распространенными языками разметки являются язык разметки гипертекста (HTML), расширяемый язык разметки (XML) и стандартный обобщенный язык разметки (SGML).

Пакет (Package)

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

Время выполнения (Runtime)

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

Бэкэнд (Backend)

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

Front-end (Front-end)

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

Серверная сторона (Server-side)

Когда процедуры и процессы выполняются на сервере, они считаются серверными. С другой стороны, клиентская сторона находится в конце пользователя. Многие языки программирования предназначены для программирования на стороне сервера, например PHP, Perl и ASP. С интернет-бумом почти все веб-сайты используют как серверную, так и клиентскую обработку. Отличным примером серверного скрипта является поисковая система.

Исходные данные (Source data)

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

Заявление (Statement)

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

Синтаксис (Syntax)

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

Токен (Token)

Резюме

Так что у вас есть это. Вот некоторые из основных терминов программирования, которые могут помочь вам начать программирование. Видите что-то, чего вы не понимаете или думаете, что мы упустили что-то важное? Запишитесь на наши курсы программирования!

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

  • Процедурное и непроцедурное программирование
  • Десять самых популярных языков
  • С++ (Си-плюс-плюс)
  • Python (Пайтон или Питон)
  • Visual Basic (Вижуал Бейсик)
  • PHP (Пи-эйч-пи)
  • Delphi (Делфи)
  • Java (Джава)
  • JavaScript (Джава-скрипт)
  • Ruby (Руби)
  • ActionScript (Экшн-скрипт)
  • Nemerle (Немерле)
  • Советы для начинающих

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

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

Процедурное и непроцедурное программирование

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

Все они подразделяются на две категории:

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

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

  • низкого уровня (или машинно-ориентированные - Ассемблер, Бейсик);
  • высокого уровня.

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

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

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

Для этого используют специальные программы-трансляторы.

Непроцедурные языки включают две основные языковые группы:

  • объектно-ориентированные;
  • декларативные.

Классификация языков программирования

Декларативные языки подразделяются на два семейства:

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

Десять самых популярных языков

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

Их всего десять в списке:

  1. C++.
  2. Python.
  3. Visual Basic.
  4. PHP.
  5. Delphi.
  6. Java.
  7. JavaScript.
  8. Ruby.
  9. ActionScript.
  10. Nemerle.

У каждого из них есть свои характерные особенности, недостатки и преимущества, которые можно увидеть в описаниях ниже.

С++ (Си-плюс-плюс)

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

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

Главным его плюсом является то, что он полностью универсален. На С++ можно писать всё что угодно, именно это и обеспечило ему любовь профессионалов. Кроме того, он относительно прост в освоении — тому, кто уже изучил С, Python или Java, будет нетрудно разобраться и в С++. Верно и обратное, так что С++ часто представляют как своего рода универсальную формулу и некий ключик к миру программирования вообще.

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

Существуют разные точки зрения на этот счёт, но факт в том, что С++ пользуется неослабевающей популярностью на протяжении почти 30 лет.

Python (Пайтон или Питон)

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

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

Visual Basic (Вижуал Бейсик)

Вряд ли найдётся тот, кто не слышал об этом продукте от Microsoft, ведь многие программисты именно на нём познавали азы программирования. Visual Basic простой, многофункциональный и подходит для быстрого прототипирования.

 языки программирования и их назначение

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

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

PHP (Пи-эйч-пи)

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

Delphi (Делфи)

Delphi — императивный объектно-ориентированный язык, разработанный на основе высокоуровневого Object Pascal.

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

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

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

Java (Джава)

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

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

JavaScript (Джава-скрипт)

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

Двичный код

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

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

Ruby (Руби)

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

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

ActionScript (Экшн-скрипт)

ActionScript — это мультимедийный скриптовый язык, который предназначен для написания объектно-ориентированных программ, а именно Flash-приложений.

Написание программы

Его заточенность под конкретные задачи является одновременно и плюсом, и минусом, так как в пределах Flash он отличается многофункциональностью, но ничего другого на нём написать практически невозможно.

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

Nemerle (Немерле)

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

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

Советы для начинающих

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

Программисты

Так что нужно крепко подумать перед тем, как браться за изучение определённого языка.

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

Эксперты рекомендуют новичкам начинать обучение с Visual Basic, потом переходить на С++, а уже после этого выбирать язык, который покажется самым интересным, удобным и полезным.

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


Классификация языков программирования

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

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

Машинно-ориентированные языки

(машинные коды, Ассемблер)

Алгоритмические языки

Каждый язык программирования предназначен для решения определенного класса задач:

  • Фортран – старейший язык программирования, предназначен для решения математических задач .
  • Кобол – для решения экономических задач
  • Бейсик,Pascal – для обучения
  • Java (джава) – язык сетевого программирования.

Для системного программирования наиболее подходят языки C, C++ и Ассемблер. C и – язык разработанный для написания операционной системы UNIX (обычно ядро операционных систем писали на Assembler ).

2. Системы программирования

Системы программирования – это комплексы программ и прочих средств, предназначенных для разработки и их эксплуатации на конкретном языке программирования для конкретного вида ЭВМ.

Система программирования включает:

Текстовый редактор

программа-отладчик

Транслятор – программа переводчик с конкретного алгоритмического языка на машинного ориентированный.

компоновщик (редактор связей)

Программа, обеспечивающая запуск программы

Текст программы, написанный на конкретном алгоритмическом языке.

отладка исходного текста программы (поиск и устранение ошибок)

Программа на машинно-ориентированном языке

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

+ библиотека подпрограмм, + Help

Выделяют два вида трансляторов: интерпретаторы и компиляторы .

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

В отличие от интерпретатора компилятор осуществляет перевод на машинный язык всей исходной программы.

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

Большинство современных компиляторов работают в режиме трансляции.

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

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

3. Синтаксис и семантика

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

Синтаксис – описывает структуру программ как наборов символов (обычно говорят — безотносительно к содержанию).

Пример синтаксической ошибки : употребление оператора цикла For без To или Next, или отсутствие знака равенства в приведенной на рисунке программе.

Синтаксические ошибки распознаются встроенным синтаксическим анализатором.

Семантика – определяет смысловое значение предложений алгоритмического языка.

Пример семантической ошибки :

1) For i As Integer = 1 To 10 Step -2

2) Если надо вычислить , то запись x = a / b * c содержит семантическую ошибку, т.к. приоритет операций деления и умножения одинаков, то вначале а делиться на b , а затем полученный результат умножает на с .

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

4. Классы языков программирования

Программирование

Императивное

Декларативное

Императивные языки программирования – Бейсик, Паскаль, Си и прочие (включая объектно-ориентированные).

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

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

Если задача описывается последовательным исполнением операций ("открыть кран, набрать воды"), то такие задачи идеальные кандидаты на императивную реализацию.

Декларативные языки программирования:

Функциональные языки программирования – LISP , ISWIM ( If you See What I Mean ), ML ( Meta Language ), Miranda

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

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

Логические языки программирования – Prolog.

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

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

Программирование

Процедурное

Объектно-ориентированное

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

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

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

Объект – это базовое понятие ООП. Любой объект принадлежит одному или нескольким классам, которые в свою очередь определяют, описывают поведение объекта.

Примеры объектов : "хоббит по имени Фродо Бэггинс", "маг по имени Гэндальф".

Каждый объект характеризуется свойствами, методами и событиями .

Свойства – описание объекта. Примеры атрибутов: "имя", "рост". Набор конкретных значений определяет текущее состояние объекта.

Метод – это действие объекта, изменяющее его состояние или реализующее другое его поведение. Пример методов: "назвать свое имя", "стать невидимым".

Объект, класс, метод, свойства, события – это базовые понятия ООП.

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

К концепции ООП относится:

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

Пример наследования : на основании класса "Личность" создаются его подклассы "Хоббит", "Маг", "Эльф" и "Человек", каждый из которых обладает свойствами и поведением "Личности", но добавляет собственные свойства и меняет поведение.

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

Программирование

Неструктурное

Структурное

Неструктурное программирование допускает использование в явном виде команды безусловного перехода (в большинстве языков GOTO). Типичные представители неструктурных языков - ранние версии Бейсика и Фортрана. Однако в языках высокого уровня наличие команды перехода влечет за собой массу серьезных недостатков: программа превращается в "спагетти" с бесконечными переходами вверх-вниз, ее очень трудно сопровождать и модифицировать. Фактически неструктурный стиль программирования не позволяет разрабатывать большие проекты. Ранее широко практиковавшееся первоначальное обучение программированию на базе неструктурного языка (обычно Бейсика) приводило к огромным трудностям при переходе на более современные стили. Как отмечал известный голландский ученый Э. Дейкстра, "программисты, изначально ориентированные на Бейсик, умственно оболванены без надежды на исцеление".

Структурное программирование

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

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

Читайте также: