Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Классификация языков программирования. Критерии выбора среды и языка разработки программ (Низкоуровневые языки программирования)

Содержание:

Введение

Сегодня мы разберём такие темы как: «Классификация языков программирования» и «Критерии выбора среды и языка разработки программ». Я выбрал эти темы потому что они ближе всего к моей будущей профессии и хотелось побольше бы узнать о языках разработки программ, и научиться их отличать друг от друга и какой больше подходит в программировании той или иной программы. Для общества эти темы будут полезны тем что они тоже научатся различать языки программирования. Сегодня мы поговорим о таких проблемах как: Что такое языки программирования? Для чего они созданы? Какие группы языков есть? Какова история развития языков программирования? И м.м.д.

Так что здесь вы узнаете просто невообразимое, полезное количество информации. По этим 2-м темам. Некоторое может быть не понятно обычному человеку по тому что здесь говорят. но я это сделал по 2-м причинам.

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

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

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

Глава 1. Низкоуровневые языки программирования

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

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

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

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

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

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

Процедурные языки разделяют на языки низкого и высокого уровня.

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

Не процедурные можно разделить на объектно-ориентированные и Декларативные. Декларативные делятся на Логические (Пролог) и Функциональные (Лисп). Про объектно-ориентированные языки поговорим чуть попозже.

Языки программирования бывают 2-х основных групп: низкого уровня (низкоуровневые) и высокого уровня (высокоуровневые). И бывают 5-ти не основных групп: среднеуровневые, алгоритмические, формальные, машинные, символические, императивные. Для начала поговорим об основных языках программирования.

О низкоуровневом языке.

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

Справочный словарь:

ЭВМ - Электронно Вычислительная Машина - компьютер

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

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

Справочный словарь:

ПО — программное обеспечение

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

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

Справочный словарь:

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

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

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

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

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

Преимущества

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

Недостатки

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

Ассемблер

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

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

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

Ассемблер - не язык программирования с формализованным синтаксисом, а принцип создания синтаксисов для управления процессорами разных архитектур. Процессоры, выпускаемые современной промышленностью, обладают разными архитектурами, разными командами, поэтому и языки ассемблера различаются. И даже, для одного и того же процессора разработано несколько видов языка ассемблера (например, для работы в разных операционных системах). Однако создаются ассемблеры на основе одних принципов: машинные коды заменяются удобными для запоминания синтаксическими конструкциями, потому, что они напоминают слова обычного языка. Большая часть вычислительной техники разрабатывается в США и Европе, и за этого, слова в ассемблерах используются английские. Например, команда ADD означает сложение регистров процессора и соответствует английскому глаголу to add — складывать.

Программирование на ассемблере сводится к занесению в регистры компьютера данных из памяти (к которой с точки зрения процессора относятся и подключенные к компьютеру устройства), выполнению операций над ними и записи результата в память. За регистрами процессора закреплены буквенные обозначения, номенклатура которых зависит от типа процессора (Intel x86, ARM и др).

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

Вывод:

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

Глава 2. Среднеуровневые языки программирования

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

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

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

Вывод:

Мы узнали как работают среднеуровневые языки.

Глава 3. Высокоуровневые языки программирования

Итак а теперь поговорим о высокоуровневых языках:

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

Ответить конкретно на вопрос о том: Когда появился первый язык высокого уровня довольно сложно. Первые попытки создать что-то подобное наблюдались еще в 70 годах, но тогда использовался в основном язык Pascal, который нельзя отнести к высокому уровню. Американские военные первыми взялись разрабатывать язык программирования высокого уровня. Результат работы: в начале 80-х годов был разработан язык Ada, который был очень функциональным для своего времени, но в то же время предельно упрощен. Его главной задачей было программирование различной военной аппаратуры, встроенных систем, где любые сложности и долгие подсчеты идут только во вред.

Так же в те годы был создан язык C, с которого после создали языки С++ и СИ Шарп, и ряд других примеров, список которых довольно длинный. Также именно из высокоуровневого языка «С» берет свое начало популярнейший в наше время язык высокого уровня Java, на котором одинаково эффективно пишутся программы, скрипты, плагины и прочие «примочки» как на компьютеры, так и на разнообразные гаджеты: смартфоны, планшеты, смарт часы, очки виртуальной и дополненной реальности. Указанные языки были лидерами еще в далекие 80-90-е годы и остаются ими и поныне, хотя конечно, за это время изменилось и появилось очень многое.

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

Язык был создан Никлаусом Виртом в 1968—1969 годах после его участия в работе комитета разработки стандарта языка Алгол-68. Язык назван в честь французского математика, физика, литератора и философа Блеза Паскаля, который создал одну из первых в мире механических машин, складывающую два числа. Первая новость Вирта о языке выпущена 1970 годом; представляя язык, автор в качестве цели его создания указывал построение небольшого и эффективного языка, способствующего хорошему стилю программирования, использующему структурное программирование и структурированные данные. Последующая работа Вирта была направлена на создание на основе Паскаля языка системного программирования, с сохранением возможности вести на его базе систематический, целостный курс обучения профессиональному программированию. Результат работы — язык Модула-2.

Ada — язык программирования, созданный в 1979—1980 г. Министерству обороны США была поручена цель разработать единый язык программирования для встроенных систем (то есть систем управления автоматизированными комплексами, функционирующими в реальном времени, если в общих словах то для управления внешними устройствами). Имелись в виду прежде всего бортовые системы управления военной техникой, радары, орудийные комплексы и т.д. У разработчиков не стояли задачи создать универсальный язык, по этому решения, принятые программистами, нужно воспринимать в особенности выбранной предметной области. Язык назван в честь Ады Лавлейс.

Справочный словарь:

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

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

Algol — название ряда языков программирования, применяемых в написании программ для научно-технических задач на ЭВМ. Разработан комитетом по языку высокого уровня IFIP в 1958–1960г. (Алгол 58, Алгол 60). Кардинально переработан в 1964–1968г (Алгол 68). Один из первых высокоуровневых языков. Применялся в Европе и СССР, как в качестве практического программирования, так и академического языка (языка публикации алгоритмов в научных работах), в США и Канаде не смог превзойти распространённый там Fortran. Оказал влияние на все разработанные позднее императивные языки программирования — в частности, на язык Pascal.

Обычно названием Алгол именуют Алгол 60, в то время как Алгол 68 рассматривается как самостоятельный язык.

(Если и дальше копать по незнакомым нам словам то мы здесь на долго останемся, по этому двинемся дальше.)

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

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

Объектно-ориентированное-программирование - методология программирования основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определённого класса, а классы образуют иерархию наследования. Объектно-ориентированными языками программирования считаются языки: С++, Visual Basic, Delphi, Java.

В исходном варианте, стандартизованном в 1983 году, Ада — это структурный, модульный язык программирования, содержащий высокоуровневые средства программирования параллельных процессов. Синтаксис Ады написан на основе языков Algol или Pascal, отличие в расширении, а также сделан более строгим и логичным. Ада — язык со строгой типизацией, в нём исключена работа с объектами, не имеющими типов, а автоматические преобразования типов сведены к абсолютному минимуму: допускается неявное приведение значения общего целого или вещественного числового типа к совместимому числовому типу. В стандарте 1995 года в язык были добавлены базовые средства обектно-ориентированного-программирования, в стандарте 2007 эти средства были дополнены, поэтому современная Ада — объектно-ориентированный язык программирования.

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

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

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

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

C#

СИ Шарп является основой для написания программ под операционную систему Microsoft Windows. Именно в недрах данной компании C# и зародился, используясь в первую очередь для разработки приложения на платформу .NET Framework. С его помощью довольно легко реализовывать взаимодействие с базами данных MS SQL, он прекрасно интегрируется с другими языками С и С++.

С++

Один из нескольких языков семейства «С», который в наше время повсеместно используется для решения самых разнообразных задач:

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

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

  • Для создания интерфейсов программ и других задач.

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

Java - строго типизированный объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems после этот язык купила компания Oracle. Разработка ведётся сообществом, организованным через Java Community Process, язык и основные реализующие его технологии распространяются по лицензии GPL. Права на торговую марку принадлежат корпорации Oracle.

Это высокоуровневый язык, который используется в написании ПО для компьютерной техники. В последние годы в него вдохнула вторую жизнь мобильная ОС «Android», программы на которую пишутся в основном именно на Java. Благодаря этому факту актуальность языка ничуть не убывает. Зная его можно писать приложения как для ПК, так и для других современных гаджетов (включая смарт часы и очки виртуальной реальности).

Благодаря Java сейчас компания Mojang всё растёт и растёт, потому что они написали игру под всеми известным названием Minecraft. И которую полюбили миллиарды людей, и играют и записывают видео по сей день на всеми известный YouTube. Так же в интернете тоже есть игры написанные на этом языке, и которые даже не надо скачивать.

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

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

PHP

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

HTML — стандартизированный язык написания документов или же сайтов в Всемирной паутине(интернете). Большинство веб-страниц содержат основную инвормацию на языке HTML (или XHTML). Язык HTML интерпретируется браузерами; полученный форматированный текст отображается на любом экране.

Язык HTML до 5-й версии определялся как приложение SGML (стандартного обобщённого языка разметки по стандарту ISO 8879). Спецификации HTML5 формулируются в терминах DOM (объектной модели документа).

Язык XHTML является более строгим вариантом HTML, он следует синтаксису XML и является приложением языка XML в области разметки гипертекста.

Во всемирной паутине HTML-страницы, как правило, передаются браузерам от сервера по протоколам HTTP или HTTPS, в виде простого текста или с использованием шмфрования.

CSS

(англ. Cascading Style Sheets — каскадные таблицы стилей) — язык описания внешнего вида документа, написанного с использованием высокоуровневым языка. Преимущественно используется как средство описания, оформления внешнего вида веб-страниц, написанных с помощью HTML и XHTML, но может также применяться к любым XML-документам, например, к SVG или XUL.

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

Шрифт Брайлия - рельефно-точечный тактильный шрифт, предназначенный для письма и чтения незрячими и плохо видящим людям. Разработан в 1824г. Французом Луи Брайлем, сыном сапожника. Луи в возрасте трёх лет поранился в мастерской отца шорным ножом; из-за начавшегося воспаления глаза мальчик потерял зрение. В возрасте 15 лет Луи создал свой рельефно-точечный шрифт как альтернативу рельефно-линейному шрифту Валентина Гаюи, вдохновившись простотой «ночного шрифта» капитана артиллерии Шарля Барбье. В то время «ночной шрифт» использовался военными для записи донесений, которые можно было прочесть в темноте.

Ночной шрифт - Николя́-Шарль-Мари́ Барбье́ де ла Сер французский военный, изобретатель так называемой «ночной азбуки». Уроженец департамента Нор, служил в армии во времена абсолютизма, получив чин капитана артиллерии; во время революции 1789 - 1794г. эмигрировал и вернулся во Францию во времена Первой империи. В армии занимался проблемами шифровки сообщений, и по запросу Наполеона в 1808 году разработал так называемую «ночную азбуку» — способ кодировки сообщений, который позволял их получателям читать тексты сообщений «вслепую»— в темноте и бесшумно.

Python (Питон)

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

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

Вывод:

Мы узнали об высокоуровневых языках, как они работают, о некоторых популярных языках которые туда входят, и историю создания первого языка высокого уровня.

Глава 4: Параметры выбора языка программирования

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

1. Скорость

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

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

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

2. Требования к памяти

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

3. Легкость использования

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

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

4. Портируемость

В данном случае портируемость означает возможность использовать язык на разных компьютерах. Низкоуровневые языки являются менее портируемыми, поскольку их инструкции «машино-зависимы». То есть, каждая инструкция написана для конкретной машины. Код, написанный для конкретной машины, не запустится на на компьютере с другой архитектурой.

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

5. Абстракция

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

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

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

Вывод:

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

Глава 5. Алгоритмические языки программирования

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

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

Алголо-подобный алгоритмический язык с русским синтаксисом был введён в употребление академиком А. П. Ершовым в середине 1980-х годов, в качестве основы для «безмашинного» курса информатики.

Он работает по принципу Дано, найти, решение и условие. Но для того что бы точно показать как он работает нужно очень много всего объяснить. По этому мы уйдём от этого вопроса. Можно только показать пример как он выглядит в работе:

алг -оритм Сумма квадратов (арг цел n, рез цел S)
| дано n > 0
| надо S = 1*1 + 2*2 + 3*3 + … + n*n
нач цел -ое i
| ввод n
| S:=0
| н -ачало ц -икла для i от 1 до n
| | S:=S+i*i
| к -онец ц -икла
| вывод "S = ", S
кон -ец алгоритма

(То что выделено жирными буквами это и есть его теги то что с тире после жирных букв это я расшифровал эти сокращённые теги

(Пример: к -онец цикла) всё остальное условия и формулы решения)

P.s. Надеюсь на то что вы поняли то что было написано.

Вывод:

Мы узнали как работает алгоритм, как он выглядит, и кем он был разработан.

Глава 6. Формальные языки программирования

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

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

Формальные языки, как правило, имеют строгие правила синтаксиса. Например, 3+3=6 является синтаксически правильным математическим утверждением, но 3=+$6 — нет. H2O является синтаксически правильным химическим названием, но 2ZZ — нет.

Правила синтаксиса бывают двух видов: относящихся к лексемам и структуре. Лексемы являются основными элементами языка, такими как слова, цифры и химические элементы. Одна из проблем, с 3 = + 6 $ в том, что $ не является юридической лексемой в математике (по крайней мере, насколько мы знаем). Аналогичным образом, 2Zz не является законным, потому что нет ни одного элемента с аббревиатурой Zz.

Второй тип ошибок синтаксиса относится к структуре оператора, который устроен подобно лексеме. Утверждение 3 = + 6 $ структурно неверно, потому что вы не можете поместить знак плюс сразу после знака равенства. Аналогичным образом, молекулярные формулы должны иметь нижние индексы после имени элемента, а не раньше.

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

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

Вывод:

Мы узнали что такое формальный язык, привели пример правильного и не правильного формального языка. И узнали правила синтаксисов формального языка.

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

Глава 7. Символический язык программирования

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

Вывод:

Мы узнали что такое символический язык.

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

Императивное программирование - это парадигма программирования (стиль написания исходного кода компьютерной программы), для которой характерно следующее:

  1. в исходном коде программы записываются в команды;
  2. инструкции должны выполняться последовательно;
  3. данные, получаемые при выполнении предыдущих инструкций, могут читаться из памяти последующими инструкциями;
  4. данные, полученные при выполнении инструкции, могут записываться в память.

Первыми императивными языками были машинные инструкции коды - команды, готовые к исполнению компьютером сразу. В дальнейшем были созданы ассемблеры, и программы стали записывать на языках Ассемблеров. Ассемблер— компьютерная программа, предназначенная для преобразования машинных инструкций, записанных в виде текста на языке, понятном человеку, в машинные инструкции в виде, понятном компьютеру. Одной инструкции на языке ассемблера соответствовала одна инструкция на машинном языке. Разные компьютеры поддерживали разные наборы инструкций. Программы, записанные для одного компьютера, приходилось заново переписывать для переноса на другой компьютер. Были созданы высокоуровневые языки программирования и компиляторы — программы, преобразующие текст с языка программирования на язык машины. Одна инструкция языка высокого уровня соответствовала одной или нескольким инструкциям языка машины, и для разных машин эти инструкции были разными. Первым распространённым языком, получившим применения на практике, стал язык Fortran, разработанный Джоном Бэкусом в 1954г. Fortran является кмпилируемым языком программирования, позволяет использовать переменные, составные выражения, подпрограммы и другие элементы, в императивных языках. Для упрощения выражения математических алгоритмов в конце 1950-х годов был разработан язык Algol. В дальнейшем Algol послужил базой для написания операционных систем для некоторых моделей компьютеров. Языки COBOL (1960г.) и Basic (1964г.) стали первыми языками, разработчики которых пытались сделать языки похожими на английский язык. В 1970г. Никлаус Вирт разработал язык Pascal. Денис Ритчи создал язык С. В 1978г. команда разработчиков из фирмы Honeywell начала разработку языка Ada, через четыре года опубликовала требования для его работы; спецификация языка увидела свет в 1983г., была обновлена в 1995 и 2005-2006г.

Fortran - Язык программирования Фортран (Fortran) был создан в 1954-1957 г. программистами компании IBM под руководством Джона Бэкуса и стал первым успешным языком высокого уровня. Применяется для научных и инженерных вычислений. Обладает широкой базой и документированных программ и библиотек с открытым исходным кодом, доступных под свободными лицензиями. Применительно к математическим вычислениям используется для перемножения матриц, решения интегральных уравнений и т.д. Язык всё ещё развивается, обладает возможностями объектно-ориентированного программирования и другими опциями. Актуальными являются стандарты Fortran 95 и Fortran 2003.
Первая спецификация Фортран, документация по работе с ним и инструменты для программирования на этом языке были выложены в 1956-1957 г. Эффективность работы программ, написанных на нем, оказалась сопоставимой с той, которую обеспечивал Ассемблер. Фортран обрел широкую популярность среди пользователей.
Язык быстро был напписан для популярных аппаратных платформ: IBM 709, 650, 1620, 7090. Собственные компиляторы для этого языка старались разрабатывать и многие производители вычислительных устройств. К середине 1960г. количество программ на Фортране составляло около полусотни. Быстрый рост популярности Фортрана в США вызвал в Европе стремление разработать столь же эффективное средство программирования. В результате был сформирован комитет, создавший под руководством Питера Наура язык International Algorithmic Language, получивший известность под названием ALGOL (ALGOrithmic Language) и ставший академическим стандартом.

COBOL - название от общего бизнес-ориентированного языка (COmmon Business Oriented Language). Программирование для начинающих.
Язык программирования КОБОЛ был создан в 1959 на Комитете "The Short Range Committee". Это один из трех комитетов, предложенных для создания на совещании, состоявшемся в Пентагоне в мае 1959 года, организованного Чарльзом Филлипомс из министерства обороны США . "The Short Range Committee" был сформирован для разработки нового языка программирования для бизнеса. Он состоял из членов, представляющих шесть производителей компьютеров и трех правительственных учреждений. В частности, шесть компаний-производителей. Три государственных учреждения были: ВВС США, и Национальное бюро стандартов . Этот комитет был под председательством Национального бюро стандартов. После создания Комитет разработал спецификации языка программирования КОБОЛ. Этот Комитет состоял из шести человек:
Уильям Селден и Гертруда Тирни из IBM.
Говард Бромберг и Говард Скидка из RCA.
Вернон Ривз и Джин Е. Сэммет из Sylvania Electric Products.

Эта группа завершила спецификацию для COBOL, и в 1959 года выпустила в свет. Спецификации были в значительной степени воодушевлены FLOW-MATIC, языком, который был изобретен Грейс Хоппер, и языком от IBM, который назывался COMTRAN, а изобрел его Боб Бемер.
Спецификации были утверждены Комитетом. После чего они были утверждены Исполнительным комитетом в январе 1960 , и отправлены в типографию правительства, которое отредактировало и напечатало эту спецификацию как язык программирования Cobol 60. COBOL был разработан в течение шести месяцев, и еще до сих пор используется более чем 40 лет спустя, даже для обучения основам программирования.
COBOL, в первоначальной спецификации, обладал отличным самодокументируемыми возможностями, эффективными методами работы с файлами, и хорошими наборами типов данных на тот момент, из-за его использования картинок для детальной спецификации поля. Однако по современным меркам для программирования на языке определения, у него имеются серьезные недостатки, в частности, многословный синтаксис и отсутствие поддержки локальных переменных, рекурсии, динамического распределения памяти, и структурного программирования . Отсутствие поддержки объектно-ориентированного программирования и так понятно, учитывая к тому же, что такое понятие не было известно в то время.
COBOL имеет много зарезервированных слов, и трудно избежать непреднамеренного использования одного из них, без использования некоторых соглашений, например, таких как добавление в начале префикса для всех имен переменных. Оригинальная спецификация COBOL даже поддерживала само-модифицирующийся код через знаменитый "ALTER X TO PROCEED TO Y". В силу этих обстоятельств, очень мало нового кода пишется на COBOL. Однако, спецификации COBOL пересматривались на протяжении многих лет, чтобы решить некоторые из этих критических замечаний, а затем в COBOL устранили многие из этих недостатков, добавив: улучшения структуры управления, объектно-ориентированное программирование и удалили возможность использовать само-модифицирующийся код.
Многие программы COBOL до сих пор используются в крупных коммерческих предприятий, в частности, в финансовых учреждениях. Некоторые люди думают, что использование десятичной арифметики в его инструкциях могло привести к тому, что программы являются уязвимыми перед проблемой связанной с датой 2000 года. Однако, трудно понять, почему они должны были сформировать это мнение, можно лишь предположить, что это происки конкурентов. Следует отметить, что COBOL своей десятичной арифметикой позволяет избежать многих других проблем, которые могут произойти при использовании вычислений с плавающей точкой для финансовых расчетов в COBOL.

Basic - (в переводе с английского "базовый", "основной"; в русскоязычной традиции известен как Бейсик) - язык программирования и среда разработки, созданы как средство обучения студентов — не программистов по написанию программ для решения несложных профессиональных задач.

Язык был создан в 1964 г. Его создатели - Джон Кемени и Томас Курц, сотрудники Дартмутского колледжа. Цель языка была обучение программированию на маломощных компьютерах, каковыми в ту пору являлись установленные в учебных заведениях ЭВМ. Отличительной особенностью стало сделать этот язык не закрытым проектом, а общественным достоянием. Они руководствовались следующими принципами:

  1. легкость освоения;
  2. универсальная направленность;
  3. возможность подключения расширенных возможностей для продвинутых пользователей;
  4. интерактивность;
  5. сообщения об ошибках должны быть максимально понятными;
  6. небольшие программы должны компилироваться быстро; язык не должен требовать знания аппаратной архитектуры;
  7. пользователь должен быть изолирован от операционной системы.

В 1977 г. Microsoft выпустила Altair Basic и превратила язык в средство коммерческого давления, добившись встраивания его в чипы ПЗУ IBM PC. Это поспособствовало росту популярности языка. В те годы, на волне всплеска потребительского спроса на первые персональные компьютеры, это было объяснимо. Возможности ранних ПК были скромны, программного обеспечения для них было мало, перенос и установка ПО были трудоемки (для хранения программ использовались бытовые магнитофоны), поэтому корпорации, выпускавшие ПК, встраивали Basic в свои машины. Благодаря этому владелец компьютера мог сразу же после включения устройства приступить к его использованию. Со второй половины 1980г. персональные компьютеры становятся сложнее и мощнее. Basic уже, не подходит для полноценного управления такими устройствами, и появляется рынок готового ПО, и необходимость в написании компьютерных программ неспециалистами отпадает.

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

Вывод:

Мы узнали что такое императивные языки программирования, узнали про их историю, и узнали про некоторые языки программирования которые входят в эту группу.

Глава 9. Критерии выбора среды и языка разработки программ

Для каждого языка программирования существует отдельная программа разработки приложений. Среда для языка разработки программ нужна для того что бы делать отладку кода, и эти программы специально настроены на именно этот язык программирования что позволяет использовать все возможности кода. Плюс ещё к тому же разные типы тегов по разному подсвечены и это даёт преимущество в чтении и понимании кода. В обычном текстовом файле весь код был бы чёрным, было бы сложно читать код и нельзя было бы сделать отладку и выявить ошибку. Однако есть и те программы которые созданы для нескольких языков программирования. К примеру для языков программирования HTML, CSS, PHP и Java существует программа BlueFich, это программа для разработки веб-сайтов, очень удобная в использовании, можно полностью настроить как вам удобно, и пользоваться ей. Так же она подойдёт и для программистов начального уровня потому что она высвечивает похожие варианты тегов которые вы можете либо выбрать, либо сами написать. Плюс этого в том что если вы будете писать атрибут который не работает в том теге в котором вы его прописываете, то программа не будет давать вам подсказок. В общих словах это мощная программа для высокоуровневых языков программирования.

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

Ассемблер

  1. Turbo Assembler (TASM) - программный пакет компании Borland, предназначенный для разработки программ на языке ассемблера для архитектуры x86. Кроме того, TASM может работать совместно с трансляторами с языков высокого уровня фирмы Borland. TASM до сих пор используется для обучения программированию на ассемблере под архитектуру x86. Пакет TASM поставляется вместе с компоновщиком Turbo Linker и порождает код, который можно отлаживать с помощью Turbo Debugger. По умолчанию TASM работает в режиме совместимости с другим распространённым ассемблером — Microsoft Macro Assembler, то есть TASM умеет транслировать исходники, разработанные под MASM. Кроме того, TASM имеет режим IDEAL, улучшающий синтаксис языка и расширяющий его функциональные возможности.
  2. MASM Builder - Визуальная среда разработки для создания программ на ассемблере. Использует в качестве компилятора Masm32. Позволяет создавать контроллы (как в Visual C++ или Delphi) и редактировать их основные свойства, что в свою очередь, позволяет быстро создать и отредактировать исходный код. Проект можно сохранять в отдельный файл, чтобы потом в любое время снова продолжить разработку. MASM Builder также можно использовать как хороший редактор исходного кода: в программе существует настраиваемая подсветка синтаксиса и много других возможностей, значительно облегчающих редактирование кода. На данный момент программа доступна на английском и русском языках.
  3. RadASM - бесплатная среда разработки программного обеспечения для ОС Windows и не только, изначально предназначенная для написания программ на языке ассемблера. В качестве компилятора ассемблера может поддерживать много разных типов компиляторов (MASM, TASM и т.д). Имеет гибкую систему файлов настроек, благодаря чему может быть использована как среда разработки программного обеспечения на высокоуровневых языках, а также документов, основанных на языках разметки. Поддерживает 14 языков, включая русский.
  4. SoftICE - отладчик и дизассемблер для Windows. Программа разработана для управления процессами на низком уровне Windows, причем таким образом, чтобы операционная система не распознавала работу отладчика. В отличие от прикладного отладчика, SoftICE способен приостановить все операции в Windows, что очень важно для отладки драйверов. SoftICE - это универсальный отладчик, которым можно отладить любой код. SoftICE очень популярен как инструмент взлома программного обеспечения.
  5. OllyDbg (Olly Debugger) - бесплатный многооконный 32-битный отладчик уровня ассемблера для операционных систем Windows, предназначенный для анализа и модификации приложений, работающиx в режиме пользователя. OllyDbg обладает хорошей функциональностью, что делает его пригодным для решения различных задач и исследования кода любой сложности. Интерфейс отладчика полностью настраиваемый: фон рабочих окон, цвет и размер шрифта, подсветка определенных ассемблерных инструкций и многое другое. Позволяет создавать точки останова на подпрограммы, адреса, сообщения Windows, обращения к памяти, определенные последовательности инструкций и т.д. Создает список используемых подпрограмм, строковых переменных, дескрипторов элементов управления. Поддерживает поиск ASCII и Unicode строк, а также hex-значений.

Pascal

Lazarus для быстрой разработки программ (RAD), использующая компилятор Free Pascal, который поддерживает Object Pascal. Разработчики программ используют Lazarus, для создания консольного кода и графического интерфейса пользователя (GUI) программы для рабочего стола, а также для мобильных устройств, веб-приложений, веб-сервисов, визуальных компонентов и функциональных библиотек. Компилятор Free Pascal поддерживает несколько различных платформ, таких как Mac, Linux и Windows. Переведена на русский язык.

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

Ada

Есть специальная среда разработки GNAT, однако про неё ничего не написано, не о её преимуществах, не о недостатках. Возможно потому что язык Ada очень старый, на него не стали выпускать среды разработки, нежели чем на Ассемблер, у которого 10 сред программирования, однако я отметил только 5, потому что остальные 5 предназначены были не только для него. Т.к. среда разработки только одна, я решил оставить ссылку на установку этой среды разработки приложений. (P.s. Просто мне стало жалко этот язык программирования(https://www.gnu.org/software/gnat/))

Algol

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

Fortran

Программы есть, но они есть под OS Linux. Они называются Gedit, Geany, Gfortran.

C#/C++

  1. Code::Blocks - простой и быстрой интегрированной среды разработки с поддержкой языков программирования C/C++. Как и в любой достойной интегрированной среде разработки, в ней реализованы подсветка синтаксиса, вкладки, механизмы автодополнения кода и управления проектами, а также интегрирован отладчик. Ее главным преимуществом является простая система плагинов, которая позволяет добавить поддержку таких незаменимых инструментов, как Valgrind и CppCheck, а также реализовать такие менее нужные функции, как мини-игра Тетрис. Мне же она нравится из-за главным образом из-за своего набора очевидных и удобных горячих клавиш, а также большого количества параметров конфигурации, которые могут пригодиться в тех или иных ситуациях.
  2. Eclipse как раз является "реальной интегрированной средой разработки". Но для программирования на языке C в Eclipse все же нужно установить небольшой плагин. Таким образом, я не противоречу сам себе. Кроме того, было бы невозможно создать список интегрированных сред разработки без упоминания такого монстра, как Eclipse. Нравится вам это или нет, Eclipse остается отличным инструментом для разработки программных продуктов на языке Java. А благодаря проекту CDT, данная интегрированная среда разработки может с успехом использоваться и для разработки программных продуктов на языках C/C++. Вы сможете пользоваться всеми возможностями Eclipse, включая такие традиционные возможности, как автодополнение кода, визуализация структуры кода, генерация кода и мощный рефакторинг. На мой взгляд, единственным недостатком данной интегрированной среды разработки по сравнению с Code::Blocks является тяжеловесность. Она является крайне тяжеловесной, поэтому для ее полной загрузки требуется некоторое время. Но если ваша машина может достаточно быстро работать с ней или же вы являетесь фанатом Eclipse, эта интегрированная среда разработки будет отличным выбором.
  3. Geany является более гибкой, но менее функциональной противоположностью Eclipse. При этом отсутствующие функции (например, отладчик) с лихвой компенсируются небольшими полезными инструментами: полем для добавления заметок, механизмом создания проектов из шаблонов, полем визуализации структуры кода, настраиваемыми горячими клавишами, а также инструментом для управления плагинами. Все-таки, Geany скорее можно назвать мощным текстовым редактором, а не интегрированной средой разработки. Но у неё спроектированный интерфейс.
  4. MonoDevelop - интегрированная среда разработки с уникальными пользовательскими качествами, обусловленными ее внешним видом и интерфейсом. Лично мне нравятся ее встроенные инструменты для управления проектами и работы с системой контроля версий. Ее система плагинов также впечатляет. Но, по какой-то причине, все ее параметры конфигурации, а также поддержка множества языков программирования смущают меня. Данная интегрированная среда разработки остается отличным инструментом, который я использовал много раз в прошлом, но все же не может претендовать на первое место в том случае, если речь идет о работе с "простым" языком программирования C.
  5. Anjuta, отлично интегрированная с окружением рабочего стола GNOME, может вызывать противоречивые чувства. Я привык считать ее расширенной версией Geany с поддержкой отладчика, причем ее интерфейс является более продуманным. Мне нравится ее система вкладок, предназначенная для переключения между списком проектов, списком директорий и областью визуализации структуры кода. При этом мне хотелось бы использовать некоторые дополнительные горячие клавиши для перемещения в рамках файла. В общем, это отличный инструмент, позволяющий изменять множество параметров компиляции и сборки проекта, который может удовлетворить нужны самого требовательного разработчика.
  6. NetBeans может считаться самой функциональной интегрированной средой разработки из существующих. Но это достоинство может расцениваться и как ее недостаток, причем значительный. Несмотря на наличие множества полезных функций, я предпочитаю использовать программное обеспечение, поддерживающее плагины, так как сомневаюсь, что кому-либо может потребоваться поддержка систем контроля версий Git и Mercurial при разработке одного и того же проекта. Можете считать меня сумасшедшим. Но если вам хватит терпения для того, чтобы разобраться со всеми ее параметрами, вы, скорее всего, разберетесь с любой из интегрированных сред разработки для любой из платформ.
  7. KDevelop может быть отличным решением для всех фанатов окружения рабочего стола KDE. Она поддерживает огромное количество параметров конфигурации, которыми вы можете воспользоваться при необходимости. Можете считать мое мнение субъективным, но мне никогда не нравился ее интерфейс. Кроме того, я не смог использовать ее для выполнения реальной работы из-за того, что в редакторе кода используется чрезмерное количество различных параметров навигации и изменяемых горячих клавиш. Отладчик также поддерживает чрезмерное количество параметров, поэтому для продуктивной работы с ним требуется продолжительная практика. Однако, в вашем случае все затраты времени наверняка компенсируются гибкостью и мощностью данной интегрированной среды разработки. Кроме того, просто нельзя обойти вниманием отличную документацию, поставляемую в комплекте.

Java

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

Jdeveloper Ещё один продукт от Oracle с массой преимуществ, среди которых поддержка системы контроля версий и облачного сервиса Oracle, он упакован SQL Developer,  PL / SQL обработчиком запросов, WebLogic Server, редакторами HTML, CSS, JavaScript, JSF, JSP, WSDL и ещё огромным количеством всевозможных полезностей.

NetBeans, Eclipse.

HTML - PHP — CSS -JS

  1. Vim выпущен в 1991 году. Универсальный и мощный редактор получил множество поклонников по всему миру. Что делает его особенным среди других, это технология командной строки. Вместо простого написания кода, вы выбираете режим ввода для текста, запускаете поиск и используете еще больше указаний. Этот редактор импортирован на всех известных операционных системах. Vim также может быть расширен с помощью скриптов и плагинов. Это бесплатный софт, который уже инсталлирован на многих Linux системах.
  2. Emacs Разработка началась в далеких 1970-х и продолжается до сих пор. Этот редактор известен своей расширяемостью. Это один из первых редакторов, который поддерживает подсветку кода, автоматическое выравнивание кода и поддержку многих программных языков. Подобно Vim, он также кросс-платформенный и может использоваться через терминальное окно или графический интерфейс. Emacs это бесплатный и открытый ресурс.
  3. Aptana Studio это среда разработки предназначена для тяжелых AJAX приложений. Эта среда поддерживает большинство популярных веб языков: PHP, JavaScript, HTML, CSS, Ruby, Python и другие с помощью плагинов. Также есть Git интеграция, возможность тестировать приложение на локальном сервере, и множество полезных сниппетов кода для каждого языка программирования. Подобно Eclipse, Aptana бесплатный и открытый ресурс.
  4. Dreamweaver это часть приложений Adobe Suite предназначенных для веб дизайнеров. Он поддерживает только наиболее популярные языки веб программирования – PHP, ASP.NET, JavaScript, HTML, CSS. Очень удобный для новичков, с поддержкой WISIWYG редактирования, живого просмотра, тестирование на удаленном сервере и разработка приложений с помощью jQuery mobile и Phonegap. Dreamweaver доступен на OSX и Windows. Если покупать весь пакет приложений за 399$, нет смысла ею пользоваться. Но если купить отдельно, может быть в этом что-то есть.
  5. Visual Studio это «все в одном», среда разработки для Windows. Этот редактор поддерживает большое количество языков: C/C++, C#, VB.NET и F# которые встроены в среду. Имеет мощные средства для автозавершения кода, подстрочная документация, проверка ошибок, дебаггинг, дизайн форм, создание схем баз данных и многое другое. Цена начинается с 500$, но экспресс версия программы доступна бесплатно.
  6. Xcode это решение от Apple для разработки OSX и iOS приложений. Поддерживает C, C++, Objective-C, Objective-C++, Java, AppleScript, Python и Ruby. С помощью Xcode, вы можете писать, проводить дебаггинг, делать тестирование приложений. Имеет конструктор интерфейсов и эмулятор мобильных устройств, для тестирования iOS приложений. Xcode использовали, как платный редактор, но сейчас они предлагают бесплатно.

Python

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

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

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

  • Wing Python IDE - это настраиваемая и гибкая профессиональная среда разработки Python с мощным отладчиком и интеллектуальным редактором.

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

Она имеет хорошую интеграцию с App Engine, Django, PyQt, Flask, Vagrant и т.д. Wing поддерживает управление проектами и контроль версий с помощью Git, Mercurial, Bazaar, Subversion и многих других систем. Она становится популярной среди разработчиков Python, и многие теперь предпочитают ее PyCharm.

  • Eric - многофункциональная среда разработки Python, написанная на Python. Она основана на кроссплатформенной графической библиотеке Qt, интегрированной с очень гибким редактором Scintilla. Поддерживается неограниченное количество редакторов.

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

Eric имеет интегрированный класс браузера и веб-браузера, интегрированный интерфейс управления версиями для репозиториев Mercurial, Subversion и Git в качестве основных плагинов и многое другое. Одной из наиболее важных функций, которая отсутствует во многих IDE Python, является интегрированная система документации исходного кода.

  • PyDev - это полноценная многофункциональная среда разработки Python для Eclipse. Она поддерживает интеграцию c Django, завершение кода, завершение кода с автоматическим импортом и анализ кода.

PyDev предлагает рефакторинг, отладчик, удаленный отладчик, браузер токенов, интерактивную консоль, интеграцию юнит тестов и интеграцию с PyLint. Вы можете использовать его для разработки на Python, Jython и IronPython.

  • Spyder - это научная среда разработки Python с множеством функций для исследований, анализа данных и создания научных пакетов. Она поставляется с многоязычным редактором с браузером функций/классов, функциями анализа кода (с поддержкой pyflakes и pylint), завершением кода, горизонтальным и вертикальным разделением страницы.

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

  • Pyzo - это простая, бесплатная и открытая IDE для Python. В ней используется conda, OS-agnostic и менеджер двоичных пакетов на уровне системы. Однако он работает без интерпретатора Python. Позиционирование проекта - простота и интерактивность.

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

  • Vim - популярный, мощный, настраиваемый и, прежде всего, расширяемый текстовый редактор. Он часто используется как среда разработки Python многими пользователями Linux. Чтобы настроить его как IDE, вы можете начать с использования Python-mode, плагина для разработки приложений Python в Vim.

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

COBOL

MicroFocus NetExpress Описание этой программы я не нашёл, однако именно эту среду разработки рекомендуют на форуме для программирование на языка COBOL.

Basic

Visual Basic

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

Вывод:

Мы узнали о специальных средах разработки языков программирования и ознакомились с ними.

Заключение

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

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

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

Библиография

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

https://bunkerbook.ru/articls/yazyki-programmirovaniya-nizkogo-urovnya/

https://spravochnick.ru/programmirovanie/nizkourovnevye_yazyki_programmirovaniya/

https://ru.wikipedia.org/wiki/Низкоуровневый_язык_программирования

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

https://techrocks.ru/2018/11/07/low-middle-high-level-programming-languages/

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

https://bunkerbook.ru/articls/sovremennye-yazyki-programmirovaniya-vysokogo-urovnya/

https://ru.wikipedia.org/wiki/Высокоуровневый_язык_программирования

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

https://prog-cpp.ru/algol-rus/

https://ru.wikipedia.org/wiki/Императивное_программирование

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

https://techrocks.ru/2018/11/07/low-middle-high-level-programming-languages/

Языки программирования:http://rus-linux.net/MyLDP/algol/good_ide_for_c_cpp_linux.html

https://ru.wikipedia.org/wik/iАссемблер

https://ru.wikipedia.org/wiki/Java

https://ru.wikipedia.org/wiki/HTML

https://ru.wikipedia.org/wiki/Python

https://ru.wikipedia.org/wiki/CSS

Справочные материалы:

https://ru.wikipedia.org/wiki/Парадигма_программирования

https://ru.wikipedia.org/wiki/Структурное_программирование

https://ru.wikipedia.org/wiki/Паскаль_(язык_программираовния)

https://ru.wikipedia.org/wiki/Ада_(язык_программирования)

https://ru.wikipedia.org/wiki/Алгол

http://progopedia.ru/typing/strong/

https://ru.wikipedia.org/wiki/Объектно-ориентированное_программирование

https://ru.wikipedia.org/wiki/Методология_программирования

https://ru.wikipedia.org/wiki/Абстракция

https://ru.wikipedia.org/wiki/Шрифт_Брайля

https://ru.wikipedia.org/wiki/Барбье,_Шарль#ночной_шрифт

https://spravochnick.ru/programmirovanie/yazyki_programmirovaniya/fortran_yazyk_programmirovaniya/

http://progaprosto.ru/doc/yazyk_programmirovaniya_cobol.php

https://spravochnick.ru/programmirovanie/yazyki_programmirovaniya/yazyk_programmirovaniya_basic/

Среды для разработки программ на языках программирования:

http://softcreate.narod.ru/asm/progs.html

https://континентсвободы.рф/разработчику/ide/lazarus-среда-разработки-на-языке-object-pascal.html

https://tech-geek.ru/ada-language-examples/

http://rus-linux.net/MyLDP/algol/good_ide_for_c_cpp_linux.html

https://sitear.ru/material/luchshiy-redaktor-html-php-css-js-koda

http://rus-linux.net/MyLDP/algol/8_Best_Python_IDE.html

https://studfiles.net/preview/6154379/page:6/