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

Библиографическое описание статьи для цитирования:
Вандина А. И. Анализ некоторых языков программирования // Научно-методический электронный журнал «Концепт». – 2014. – Т. 20. – С. 3861–3865. – URL: http://e-koncept.ru/2014/55037.htm.
Аннотация. Статья посвящена анализу наиболее часто используемых в обучении в школе и вузах языков программирования. Рассматриваются достоинства и недостатки каждого из них.
Комментарии
Нет комментариев
Оставить комментарий
Войдите или зарегистрируйтесь, чтобы комментировать.
Текст статьи
Вандина Александра Игоревна,студентка 2 курса ФГБОУ «Кубанский государственный технологический университет» (филиал) «Армавирский механикотехнологический институт», г.АрмавирAleksandraVand@mail.ru

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

Аннотация.Статья посвящена анализу наиболее часто используемых в обучении в школе и вузах языков программирования. Рассматриваются достоинства и недостатки каждого из них.Ключевые слова:языки программирования, Ассемблер, Basic, Pascal,C#.

За все время существования и развития электронновычислительных машин (ЭВМ) возникло довольно большое число языков программирования различного уровня, начиная с машинных кодов, т.е. 0 и 1, и заканчивая языками высокого уровня (ЯВУ), такими как семейство языков C(C, C++, C#), намного более адаптированными под язык человека.В разное время языки использовались в разнообразных предметных областях [1]:Таблица 1Итоги использования различных языков программирования в различных предметных областях и в разные периодыПериодОбласть примененияОсновные языкиДругие языки1960е годыОбработка деловой информацииCOBOLAssembler

Научные вычисленияFORTRANALGOL, BASIC, APL

Системная областьAssemblerJOVIAL, Forth

Искусственный интеллектLISPSNOBOLНастоящее времяОбработка деловой информацииCOBOL, C++, Java, spreadsheetC, PL/I, 4GLs

Научные вычисленияFORTRAN, C, C++, JavaBASIC

Системная областьC, C++, JavaAda, BASIC, Modula

Искусственный интеллектLISP, Prolog

Интеллектуальная деятельностьTeX, Postscript, текстовые процессоры

Создание процессоровUNIX, shell, TCL, Perl, JavaScriptAWK, Marvel, SED

Новые парадигмыML, SmalltalkEifellЯзык программирования –это искусственно созданный язык для задания специального кода в ЭВМ, приводящего к тому или иному результату. Большая советская энциклопедия дает такое определение: «Язык программирования, формальная знаковая система, используемая для связи человека с ЦВМ (цифровой вычислительной машиной); предназначена для описания данных (информации) и алгоритмов (программ) их обработки на вычислительной машине»[2].

Принято выделять языки программирования низкого и высокого уровня. К первым относят так называемые машинные языки(коды), которые полностью или почти полностью являют собой программу, обращающуюся непосредственно к машине в понятной ей двоичной (0 и 1 –нет сигнала/есть сигнал) кодировке.В пример можно привести такие языки как АЛГОЛ, КОБОЛ, Фортран, Ассемблер.Чемто средним между языками высокого и низкого уровней являются языки, которые были созданы как облегченные для того, чтобы непрограммисты имели возможность самостоятельно создавать программы, но потом развились в полноценные с возможностью создания высококлассных программных продуктов. Из наиболее известных языков к ним можно отнести Basicи Pascal. Их отличие от языков низкого уровня в том, что алфавит воспринимаемых ими словесных команд намного больше, чем в машинных кодах, а также они несколько понятнее человеку, имеющему базовые знания английского языка.ЯВУ представляют собой многоуровневую структуру командной иерархии, наличие огромной базы готовых классов, функций и шаблонов. Элементарные программы на таких языках создаются менее, чем за пять минут. Как правило, такие языки реализуют и визуальное программирование, позволяющее работать непосредственно с элементами управлениями, такими как кнопки, текстовые поля, метки (обычный текст), меню и т.п. В плане выполнения программвЭВМ отличие между языками низкогои высокого уровнейсостоит в быстродействии. Программа, выполненная в машинном коде, котораяобращающаяся напрямую к регистрам памяти, скорее всего, выдаст результат намного быстрее, чем та, что написана в более понятном, словесном, коде. Это объясняется тем, что все словесные команды языка сначала перерабатываются в машинный код, а потом уже происходит их выполнение. Как бы ни совершенствовались языки программирования, ЭВМвсе также «понимают» лишь 0 и 1. Высокоуровневые языки всего лишь позволяют программисту облегчить свою работу, заменив не слишком понятные человеку команды на вполне ясные английские слова.Рассмотрим подробнее некоторые языки различных уровней, с которыми я встречалась «лицом к лицу».Исходя из логических соображений, начинать обучение языкам программирования и работе с ними следует с языков низкого уровня, чтобы иметь представление о том, каким образом происходит обработка компьютером поступающих кодов.Однако в большинстве случаев обучение начинают с таких языков как Basicи Pascal. И все же рассмотрим сначала Ассемблер.Одной из специфических особенностей данного языка является то, что, как правило, программы на Ассемблере пишутся под определенную ЭВМ с учетом конкретной архитектуры. Нет гарантии, что написанная в «общем виде» программа, теоретически подходящая для любого процессора,действительнобудет работать на каждом компьютере. Это объясняется тем, чтолюбая подобнаяпрограмма обращается непосредственно к регистрам памяти, имеющимся в распоряжении того или иного процессора.Существует ограниченное, но довольно большое число разнообразных регистров, отвечающих за конкретные возможные действия. Однако не факт, что в двух различных архитектурах ЭВМ идеально точно совпадут имена и назначения каждого из регистров, особенно если в программе используются не стандартные, практически всегда идентичные, регистры, а специфические, отвечающие за выполнение уже запрограммированных производителем действий.Язык Ассемблера довольно сложен для понимания, особенно если человек сталкивается с ним впервые. Чтобы работать с ним, необходимы дополнительные знания по архитектуре ЭВМ, а также понимание того, как именно происходят те или иные процессы в компьютере. Это довольно сильно отвлекает от реализации непосредственно алгоритма программы. Особенно стоит учесть то, что у различных «семейств» процессоров может быть различное количество команд. Например, у микропроцессора Pentium 4 их около 500[3]. Естественно, запомнить их все довольно сложно, приходится часто обращаться к справочникам. Нельзя сказать, что в ЯВУ мало команд, но запоминаются они много проще изза ассоциативных связей или знания, например, английского языка.Внастоящее время, как правило, наАссемблере пишется не вся программа, а лишь ее часть–для увеличениябыстродействия, т.е. уменьшениявременивыполнения данного участка кода за счет обращения непосредственно к микропроцессору.Подобные «вставки» возможны и на языке Basic.Бейсик –высокоуровневый язык программирования, который изначально был создан как язык для непрограммистов, чтобы те могли самостоятельно создавать программы. В его основу легли такие языки, как ФортранII и частично на Алгол 60. В дальнейшем получил довольно широкое распространение с появление домашних компьютеров. Язык имел множество диалектов, которые за время его существования появлялись и исчезали, привнося в него новые элементы. В итоге к настоящему моменту Бейсик из простого, почти примитивного языка превратился в довольно развитый самостоятельный язык для разработки прикладных программ.Естественно, данный язык намного проще к восприятию, чем Ассемблер. Здесь программист может больше внимания уделять реализации алгоритма программы, а не следить за соответствием запросов возможностям конкретного микропроцессора. В Бейсике намного легче кодирование вводавывода информации, выполнение математических вычислений и многого другого. Синтаксис языка напоминает Фортран и многие элементы —явные заимствования из него. Посколькуключевые слова взяты из английского языка, намного проще понять предназначение той или иной команды. Основных типов данных два: строки и числа. Развиваясь, язык приобретал все больше черт структурированных высокоуровневых языков. Одним из наиболее распространённых вариантов языка Бейсик стал QBasic. Он имел широкие возможности, такие, как наличие внём довольно мощныхграфическихи звуковыхреализаций, позволяющихсоздавать на этом языке даже игры.Таким образом, язык стал гораздо объёмнее и сложнее, его освоениесталотребоватьбольше времени и усилий.Изначальная цель его создания была оттеснена на второй план. Зато Бейсик встал на одну ступень с такими языками, как Delphiи C. Особенно это стало заметно с выходом Visual Basic(VB), сочетающегов себе процедуры и элементы объектноориентированных и компонентноориентированных языков программирования. Он включает в себя возможность визуального программирования. Непосредственно Visual Basicработает лишь с Windowsприложениями, тогда как Visual Basic for Applications(VBA)предназначен для написания макросов и других прикладных программ для конкретных приложений.Кроме того имеется и скриптовый VB

VisualBasicScriptingEdition(VBScript), созданный для написания сценариев интернетстраниц.Язык VBимеет как неоспоримые достоинства, так и серьезные недостатки. Даже несмотря на свою обретенную с годами сложность, он все равно довольно прост и позволяет очень быстро разобраться в нем. Кроме того присутствует высокая скорость создания приложений с графическим интерфейсом для операционной системой (ОС) Windows. Все недостатки по большей части связаны с тем, что VB«привязан» в основном именно к данной ОС и Mac OS X, за исключением VBfor DOS. Низкая скорость работытакже является довольно ощутимым недостатком, обусловленнымтем, что практически все встроенные функции языка реализованы через библиотеку времени исполнения (runtime library), которая, в свою очередь, производит много «лишней» работы по проверке и/или преобразованию типов.

Однако стоит отметить, что все недостатки языка вытекают из его основного достоинства —простоты разработки графического интерфейса. Поэтому многие программисты используют Visual Basic для разработки интерфейса пользователя, а функциональность программы реализуют в виде динамически подключаемых библиотек (DLL), написанных на другом языке (чаще всего C++). [4]Важную часть обучения программированию несет в себе язык Pascal. Он используется непосредственно с целью постижения основ программирования старшеклассниками и студентами. Паскаль считается базой для ряда других языков.Данный язык является одним из первых структурных языков программирования. От языка Паскаль принято отсчитывать эпоху структурного программирования.Его особенность заключается в строгой типизации, а также в нетерпении каких бы то ни было двояких толкований одной команды. Разработчик Паскаля Никлаус Вирт–постарался создать интуитивно понятный даже припервом знакомстве язык. Несмотря на большое количество недостатков, при изучении программирования постепенно становящихся достоинствами, он стал огромным шагом для того времени.В настоящее время Паскаль довольно мощный язык, имеющий как графические, так и звуковые возможности. На основе этого языка существует язык с графическим интерфейсом Delphi, довольно распространенный среди профессиональных программистов.В Паскале большое внимание уделяется «скелету» программы, т.е. в ней обязательно присутствует разделение на области, такие как область описания переменных, подключение библиотек, непосредственно кодирование алгоритма. Важным становится правильно определить тип переменных из довольно обширного, по сравнению с вышеописанными языками, списка. Учитывая то, что команды являют собой английские слова (или их части и сокращения), понимание данного языка довольно простое, как и задумывал его создатель. Конечно, как и Бейсик, язык с момента своего «рождения» претерпел некоторые изменения, обзаводясь диалектами.Наиболее известной реализацией Паскаля, обеспечившей широкое распространение и развитие языка, является Turbo Pascal фирмы Borland, выросшая затем в объектный Паскаль для DOS (начиная с версии 5.5) и Windows и далее в Delphi, в которой были внедрены значительные расширения языка.Это был значительный шаг вперед в облегчении процесса программирования.Развитием языка Borland Pascal является Object Pascal —версия языка Паскаль,расширенная средствами объектноориентированного программирования.Одним из наиболее распространенных языков программирования у профессионалов является язык семейства C–C#(си шарп). Это язык высокого уровня, сочетающий в себе объектноориентированные и контекстноориентированные представления. Средой для разработки программ на языке C#обычно является пакет MicrosoftVisualStudio(VS). Она позволяет создавать консольные приложения, приложения Windows, сайты .NETи многое другое.Как всякая среда, имеющая визуальное устройство интерфейса, VSобладает большой библиотекойэлементов управления, а также возможностью подключения баз данных, например, линейки SQL. Широкий спектр настроек позволяет создать именно тот дизайн будущего приложения, который Вам необходим. Имея русифицированную версию VS, создать простейшую программуWindowsприложения –дело пяти минут, причем большая часть времени уйдет на проработку дизайна. Зная хотя бы приблизительно принцип работы языка C#применительно к элементам управления и значения некоторых команд, можно по предлагаемым умной программой подсказками и приведенным комментариям и разъяснениям сгенерировать немалой длины код.Профессиональные программисты советуют для начал все же набирать весь код вручную, стараясь понять каждую строку и каждую команду.В отличие от рассмотренных ранее языков,C#не поддерживает интеграцию код на Ассемблере. Чтобы все же внести такую вставку, необходимо подключить специальную библиотеку, а также провести с десяток манипуляций, чтобы добиться необходимого эффекта. Естественно, не многие спешат совместить C#и Ассемблер.Язык C#очень чувствителен к объявлению переменных и соответствию их типа производимым над ними действиями. Например, не получится возвести в произвольную степень целочисленное число, программа выдаст ошибку. Здесь требуется тип переменной double–число дойной точности. Очевиднотакже, что математические операции нельзя проводить над строковыми переменными.Немаловажной особенностью языка C#является возможность создания собственного класса. Вся сутьязыказаключена в классах, поскольку именно имопределяется природа объекта.[5]Класс (определяется ключевым словом class), в смысле объектноориентированного программирования, —это совокупность объектов, которые имеют общие свойства и методы. Егоможно назватьшаблономдля построения экземпляров–элементов класса.Так, мы можем создать класс, в котором будет храниться какоето количество переменных, а потом в прописанных ниже методах с ними будут производиться какието действия. При этом нам не обязательно присваивать конкретные значения этим переменным непосредственно в классе. Этот шаблон универсален тем, что в теле программы можно создать любое число экземпляров данного класса, в каждом из которых значения описанных переменных будут различны. Кроме того в C#практикуется наследование классов.Например, создаем класс «Треугольник», задаем переменные определенного типа, пишем метод, который считает, например, площадь нашего треугольника. А потом вспоминаем, что треугольники бывают разные, и создаем новый класс «Прямоугольные», который является наследником первого класса. Это значит, что новому классу доступны все переменные и все методы, которые были созданы ранее, а также свои собственные. Например, метод расчета площади по частной формуле для прямоугольного треугольника. У каждого класса может быть только по одному наследнику, однако, если выстроить наследников под «родителем», каждому «ребенку» будет доступно все, что имеют вышестоящие «родственники», тогда как сверху вниз подобное отсутствует.Из всех, описанных выше языков, последний, пожалуй, самый мощный и перспективный. Однако не стоит зацикливаться лишь на нем. В конечном счете, если Вы надеетесь стать программистом, необходимо знать не один и не два языка программирования, а как можно больше. Естественно, нет смысла учить те языки, которые в настоящее время являются «мертвыми». Есть необходимость в знании Ассемблера, C++и C#, возможно, Delphi, PHPи т.д. Чем больше языков Вы знаете, тем выше вероятность написать программу с именно тем функционалом, что был необходим, причем с наименьшими затратами и с наибольшей результативностью.

Ссылки на источники1.Языки программирования. Ассемблер. Версия 1.0 [Электронный ресурс]: конспект лекций / С.В. Титовский, Н.В. Титовская. –Электрон. дан. (2 Мб). –Красноярск: ИПК СФУ 2008.2.Большая Советская Энциклопедия: в 30 т. Т. 29 : БариБраслет / гл. ред. А.М. Прохоров. 3е изд. М.: Советская Энциклопедия, 1970.3.Сайт «Программирование» URL: http://www.comprog.ru/Assembler/article_4151.htm4.Сайт«Wikipedia» URL: http://ru.wikipedia.org/wiki/Visual_Basic5.1)Шилдт, Герберт. C# 4.0: полное руководство.: Пер. с англ. –М.: ООО «И.Д. Вильямс», 2011. –1056 с.: ил. –Парал. тит. англ. ISBN 9785845916846 (рус.)

Vandina Aleksandra,2nd year student of the Kuban state technological University (branch) «Armavir mechanictechnological Institute», ArmavirThe analysis of some programming languagesAbstract. The article is devoted to the most frequently used in teaching at schools and universities programming languages. The authors consider the advantages and disadvantages of each of them.Key words: programming languages Assembler, Basic, Pascal, C#.