Файл: Классификация языков программирования. Критерии выбора среды и языка разработки программ (Низкоуровневые языки программирования).pdf
Добавлен: 31.03.2023
Просмотров: 152
Скачиваний: 2
СОДЕРЖАНИЕ
Глава 1. Низкоуровневые языки программирования
Глава 2. Среднеуровневые языки программирования
Глава 3. Высокоуровневые языки программирования
Глава 4: Параметры выбора языка программирования
Глава 5. Алгоритмические языки программирования
Глава 6. Формальные языки программирования
Глава 7. Символический язык программирования
Глава 8. Императивные языки программирования
Глава 7. Символический язык программирования
Символические языки программирования это языки которые используют символы вместо слов. К этому типу относится Ассемблер. В общем это низкоуровневые языки программирования. Символы это буквы, буквы это слова, слова это предложения. Символическими языками не могут быть высокоуровневые языки, потому что они созданы для человека а не для ПК. Теги преобразует компилятор в машинный код, а значит это уже не символический язык программирования. Символический язык программирования это тот язык который вместо систем счисления используют символы. И без компиляторов преобразуют его в машинный код. Возможно и то что я говорю не совсем правда, но в Всемирной паутине информации про этот тип языков нет, однако сам тип существует. А это означает что про него тоже надо рассказать.
Вывод:
Мы узнали что такое символический язык.
Глава 8. Императивные языки программирования
Императивное программирование - это парадигма программирования (стиль написания исходного кода компьютерной программы), для которой характерно следующее:
- в исходном коде программы записываются в команды;
- инструкции должны выполняться последовательно;
- данные, получаемые при выполнении предыдущих инструкций, могут читаться из памяти последующими инструкциями;
- данные, полученные при выполнении инструкции, могут записываться в память.
Первыми императивными языками были машинные инструкции коды - команды, готовые к исполнению компьютером сразу. В дальнейшем были созданы ассемблеры, и программы стали записывать на языках Ассемблеров. Ассемблер— компьютерная программа, предназначенная для преобразования машинных инструкций, записанных в виде текста на языке, понятном человеку, в машинные инструкции в виде, понятном компьютеру. Одной инструкции на языке ассемблера соответствовала одна инструкция на машинном языке. Разные компьютеры поддерживали разные наборы инструкций. Программы, записанные для одного компьютера, приходилось заново переписывать для переноса на другой компьютер. Были созданы высокоуровневые языки программирования и компиляторы — программы, преобразующие текст с языка программирования на язык машины. Одна инструкция языка высокого уровня соответствовала одной или нескольким инструкциям языка машины, и для разных машин эти инструкции были разными. Первым распространённым языком, получившим применения на практике, стал язык 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 г. Его создатели - Джон Кемени и Томас Курц, сотрудники Дартмутского колледжа. Цель языка была обучение программированию на маломощных компьютерах, каковыми в ту пору являлись установленные в учебных заведениях ЭВМ. Отличительной особенностью стало сделать этот язык не закрытым проектом, а общественным достоянием. Они руководствовались следующими принципами:
- легкость освоения;
- универсальная направленность;
- возможность подключения расширенных возможностей для продвинутых пользователей;
- интерактивность;
- сообщения об ошибках должны быть максимально понятными;
- небольшие программы должны компилироваться быстро; язык не должен требовать знания аппаратной архитектуры;
- пользователь должен быть изолирован от операционной системы.
В 1977 г. Microsoft выпустила Altair Basic и превратила язык в средство коммерческого давления, добившись встраивания его в чипы ПЗУ IBM PC. Это поспособствовало росту популярности языка. В те годы, на волне всплеска потребительского спроса на первые персональные компьютеры, это было объяснимо. Возможности ранних ПК были скромны, программного обеспечения для них было мало, перенос и установка ПО были трудоемки (для хранения программ использовались бытовые магнитофоны), поэтому корпорации, выпускавшие ПК, встраивали Basic в свои машины. Благодаря этому владелец компьютера мог сразу же после включения устройства приступить к его использованию. Со второй половины 1980г. персональные компьютеры становятся сложнее и мощнее. Basic уже, не подходит для полноценного управления такими устройствами, и появляется рынок готового ПО, и необходимость в написании компьютерных программ неспециалистами отпадает.
Итак про языки программирования мы всё что можно и не можно рассказали. Теперь перейдём к критериям сред для языков программирования.
Вывод:
Мы узнали что такое императивные языки программирования, узнали про их историю, и узнали про некоторые языки программирования которые входят в эту группу.
Глава 9. Критерии выбора среды и языка разработки программ
Для каждого языка программирования существует отдельная программа разработки приложений. Среда для языка разработки программ нужна для того что бы делать отладку кода, и эти программы специально настроены на именно этот язык программирования что позволяет использовать все возможности кода. Плюс ещё к тому же разные типы тегов по разному подсвечены и это даёт преимущество в чтении и понимании кода. В обычном текстовом файле весь код был бы чёрным, было бы сложно читать код и нельзя было бы сделать отладку и выявить ошибку. Однако есть и те программы которые созданы для нескольких языков программирования. К примеру для языков программирования HTML, CSS, PHP и Java существует программа BlueFich, это программа для разработки веб-сайтов, очень удобная в использовании, можно полностью настроить как вам удобно, и пользоваться ей. Так же она подойдёт и для программистов начального уровня потому что она высвечивает похожие варианты тегов которые вы можете либо выбрать, либо сами написать. Плюс этого в том что если вы будете писать атрибут который не работает в том теге в котором вы его прописываете, то программа не будет давать вам подсказок. В общих словах это мощная программа для высокоуровневых языков программирования.
Сейчас я рассказал только про одну общую программу для разработки программ, в дальнейшем я же буду говорить только про те программы которые были специально разработаны только для одного языка программирования. Писать буду только под те языки программирования которые я писал выше. Всего я их насчитал 15 однако под машинный код нету среды разработки, так что 14.
Ассемблер
- Turbo Assembler (TASM) - программный пакет компании Borland, предназначенный для разработки программ на языке ассемблера для архитектуры x86. Кроме того, TASM может работать совместно с трансляторами с языков высокого уровня фирмы Borland. TASM до сих пор используется для обучения программированию на ассемблере под архитектуру x86. Пакет TASM поставляется вместе с компоновщиком Turbo Linker и порождает код, который можно отлаживать с помощью Turbo Debugger. По умолчанию TASM работает в режиме совместимости с другим распространённым ассемблером — Microsoft Macro Assembler, то есть TASM умеет транслировать исходники, разработанные под MASM. Кроме того, TASM имеет режим IDEAL, улучшающий синтаксис языка и расширяющий его функциональные возможности.
- MASM Builder - Визуальная среда разработки для создания программ на ассемблере. Использует в качестве компилятора Masm32. Позволяет создавать контроллы (как в Visual C++ или Delphi) и редактировать их основные свойства, что в свою очередь, позволяет быстро создать и отредактировать исходный код. Проект можно сохранять в отдельный файл, чтобы потом в любое время снова продолжить разработку. MASM Builder также можно использовать как хороший редактор исходного кода: в программе существует настраиваемая подсветка синтаксиса и много других возможностей, значительно облегчающих редактирование кода. На данный момент программа доступна на английском и русском языках.
- RadASM - бесплатная среда разработки программного обеспечения для ОС Windows и не только, изначально предназначенная для написания программ на языке ассемблера. В качестве компилятора ассемблера может поддерживать много разных типов компиляторов (MASM, TASM и т.д). Имеет гибкую систему файлов настроек, благодаря чему может быть использована как среда разработки программного обеспечения на высокоуровневых языках, а также документов, основанных на языках разметки. Поддерживает 14 языков, включая русский.
- SoftICE - отладчик и дизассемблер для Windows. Программа разработана для управления процессами на низком уровне Windows, причем таким образом, чтобы операционная система не распознавала работу отладчика. В отличие от прикладного отладчика, SoftICE способен приостановить все операции в Windows, что очень важно для отладки драйверов. SoftICE - это универсальный отладчик, которым можно отладить любой код. SoftICE очень популярен как инструмент взлома программного обеспечения.
- 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++
- Code::Blocks - простой и быстрой интегрированной среды разработки с поддержкой языков программирования C/C++. Как и в любой достойной интегрированной среде разработки, в ней реализованы подсветка синтаксиса, вкладки, механизмы автодополнения кода и управления проектами, а также интегрирован отладчик. Ее главным преимуществом является простая система плагинов, которая позволяет добавить поддержку таких незаменимых инструментов, как Valgrind и CppCheck, а также реализовать такие менее нужные функции, как мини-игра Тетрис. Мне же она нравится из-за главным образом из-за своего набора очевидных и удобных горячих клавиш, а также большого количества параметров конфигурации, которые могут пригодиться в тех или иных ситуациях.
- Eclipse как раз является "реальной интегрированной средой разработки". Но для программирования на языке C в Eclipse все же нужно установить небольшой плагин. Таким образом, я не противоречу сам себе. Кроме того, было бы невозможно создать список интегрированных сред разработки без упоминания такого монстра, как Eclipse. Нравится вам это или нет, Eclipse остается отличным инструментом для разработки программных продуктов на языке Java. А благодаря проекту CDT, данная интегрированная среда разработки может с успехом использоваться и для разработки программных продуктов на языках C/C++. Вы сможете пользоваться всеми возможностями Eclipse, включая такие традиционные возможности, как автодополнение кода, визуализация структуры кода, генерация кода и мощный рефакторинг. На мой взгляд, единственным недостатком данной интегрированной среды разработки по сравнению с Code::Blocks является тяжеловесность. Она является крайне тяжеловесной, поэтому для ее полной загрузки требуется некоторое время. Но если ваша машина может достаточно быстро работать с ней или же вы являетесь фанатом Eclipse, эта интегрированная среда разработки будет отличным выбором.
- Geany является более гибкой, но менее функциональной противоположностью Eclipse. При этом отсутствующие функции (например, отладчик) с лихвой компенсируются небольшими полезными инструментами: полем для добавления заметок, механизмом создания проектов из шаблонов, полем визуализации структуры кода, настраиваемыми горячими клавишами, а также инструментом для управления плагинами. Все-таки, Geany скорее можно назвать мощным текстовым редактором, а не интегрированной средой разработки. Но у неё спроектированный интерфейс.
- MonoDevelop - интегрированная среда разработки с уникальными пользовательскими качествами, обусловленными ее внешним видом и интерфейсом. Лично мне нравятся ее встроенные инструменты для управления проектами и работы с системой контроля версий. Ее система плагинов также впечатляет. Но, по какой-то причине, все ее параметры конфигурации, а также поддержка множества языков программирования смущают меня. Данная интегрированная среда разработки остается отличным инструментом, который я использовал много раз в прошлом, но все же не может претендовать на первое место в том случае, если речь идет о работе с "простым" языком программирования C.
- Anjuta, отлично интегрированная с окружением рабочего стола GNOME, может вызывать противоречивые чувства. Я привык считать ее расширенной версией Geany с поддержкой отладчика, причем ее интерфейс является более продуманным. Мне нравится ее система вкладок, предназначенная для переключения между списком проектов, списком директорий и областью визуализации структуры кода. При этом мне хотелось бы использовать некоторые дополнительные горячие клавиши для перемещения в рамках файла. В общем, это отличный инструмент, позволяющий изменять множество параметров компиляции и сборки проекта, который может удовлетворить нужны самого требовательного разработчика.
- NetBeans может считаться самой функциональной интегрированной средой разработки из существующих. Но это достоинство может расцениваться и как ее недостаток, причем значительный. Несмотря на наличие множества полезных функций, я предпочитаю использовать программное обеспечение, поддерживающее плагины, так как сомневаюсь, что кому-либо может потребоваться поддержка систем контроля версий Git и Mercurial при разработке одного и того же проекта. Можете считать меня сумасшедшим. Но если вам хватит терпения для того, чтобы разобраться со всеми ее параметрами, вы, скорее всего, разберетесь с любой из интегрированных сред разработки для любой из платформ.
- KDevelop может быть отличным решением для всех фанатов окружения рабочего стола KDE. Она поддерживает огромное количество параметров конфигурации, которыми вы можете воспользоваться при необходимости. Можете считать мое мнение субъективным, но мне никогда не нравился ее интерфейс. Кроме того, я не смог использовать ее для выполнения реальной работы из-за того, что в редакторе кода используется чрезмерное количество различных параметров навигации и изменяемых горячих клавиш. Отладчик также поддерживает чрезмерное количество параметров, поэтому для продуктивной работы с ним требуется продолжительная практика. Однако, в вашем случае все затраты времени наверняка компенсируются гибкостью и мощностью данной интегрированной среды разработки. Кроме того, просто нельзя обойти вниманием отличную документацию, поставляемую в комплекте.