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

Введение

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

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

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

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

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

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

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

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

Ассемблер

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

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

Лисп

Lisp - второй старейший язык программирования (List Information Symbol Processing), был разработан Дж. Маккарти в 1962 году для обработки строк символов, а не чисел. Именно это назначение Лиспа открыло для программистов новую область деятельности, известную сегодня как “искусственный интеллект”. В настоящее время Lisp успешно используется в экспертных системах, аналитических вычислительных системах и т.д.

Обширная область возможных применений Лиспа вызвала появление множества различных диалектов Лиспа, что привело к созданию в начале 1980-х годов Комитета Common LISP, который должен был выбрать наиболее подходящий диалект Лиспа и предложить его в качестве основного. Этот диалект, выбранный Комитетом в 1985 году, был назван Common LISP. С тех пор он был принят университетами США, а также многими разработчиками систем искусственного интеллекта в качестве основного диалекта языка Лисп.

Первоначально Лисп задумывался как теоретический инструмент для рекурсивных конструкций, но сегодня он превратился в мощный инструмент, предоставляющий программисту разнообразную поддержку, позволяющую быстро создавать прототипы очень и очень серьезных систем. Профессор Дж. Самман из Массачусетского технологического института отметил, что математическая четкость и предельная ясность Лиспа - это еще не все. Главное, что Лисп позволяет сформулировать и запомнить “идиомы”, столь характерные для проектов искусственного интеллекта.

Basic

В середине 60-х годов (1963) в Дартмутском колледже (США) был создан язык BASIC (BASIC от Beginner’s Allpurpose Instructional Code). Со временем, когда стали появляться другие диалекты, этот “оригинальный” диалект стал известен как Dartmouth BASIC. Язык был основан частично на Fortran II и частично на Algol-60, с дополнениями, делающими его пригодным для разделения времени и, позднее, для обработки текста и матричной арифметики. Бейсик был первоначально реализован на мэйнфрейме GE-265 с поддержкой нескольких терминалов. Вопреки распространенному мнению, с самого начала он был компилируемым языком. Бейсик был разработан для того, чтобы студенты могли писать программы, используя терминалы с разделенным временем. Он был создан как решение проблем, связанных со сложностью старых языков. Он был предназначен для более “простых” пользователей, которых не столько интересовала скорость работы программ, сколько возможность использовать компьютер для выполнения своей работы.

С появлением переводчика QuickBasic от Microsoft разработчики получили возможность создавать приложения на Basic из отдельно скомпилированных модулей, некоторые из которых могли быть написаны на других языках. Теперь, как и в случае с другими ведущими языками программирования, у разработчика есть выбор из нескольких промышленных библиотек подпрограмм, которые содержат готовые решения для общих задач программирования.

C

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

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

C++

Название C++ было придумано Риком Масситти в 1983 году. Оно указывает на эволюционный характер перехода к нему от языка C. “++” - это инкрементная операция в C. Немного более короткое название C++ является синтаксической ошибкой и уже использовалось в качестве названия совершенно другого языка.

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

Такие объекты легко и надежно использовать в ситуациях, когда их тип не может быть задан во время компиляции. Язык C был выбран в качестве базового языка для C++, потому что он: универсален, лаконичен и относительно низкоуровневый, отвечает большинству задач системного программирования, работает везде и на всем, подходит для среды программирования UNIX.

Pascal

Это высокоуровневый язык программирования общего назначения. Один из самых известных языков программирования, он широко используется в промышленном программировании, преподавании программирования в высших учебных заведениях и является основой для большого количества других языков. Он был создан Никлаусом Виртом в 1968/9 году (опубликован в 1970 году), после его участия в комитете по разработке стандарта Algol-68. Паскаль был создан как язык для обучения процедурному программированию. Язык был назван в честь Блеза Паскаля, выдающегося французского математика, физика, литератора и философа XVII века, изобретателя первой в мире арифметической машины. Компилятор Паскаля был написан на самом языке Паскаль с использованием “метода разматывания”, когда создается ядро языка с постепенным наращиванием новых возможностей.

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

Java

Java - это объектно-ориентированный язык программирования, разработанный компанией SunMicrosystems. Java-приложения обычно компилируются в специальный байт-код, поэтому они могут работать на любой виртуальной машине Java Virtual Machine (JVM) независимо от архитектуры компьютера. Официальная дата выпуска - 23 мая 1995 года. Первоначально язык назывался Oak (“дуб”) и был разработан Джеймсом Гослингом для программирования бытовых электронных устройств. Позже он был переименован в Java и использовался для написания клиентских приложений и серверного программного обеспечения. Назван в честь марки кофе Java, поэтому на официальной эмблеме языка изображена чашка с дымящимся кофе.

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

Одним из недостатков концепции виртуальной машины является то, что выполнение байт-кода виртуальной машиной может ухудшить производительность программ и алгоритмов, реализованных на языке Java. Это было справедливо для первых версий виртуальной машины Java, но в последнее время это стало практически несущественным. Этому способствовал ряд усовершенствований: использование технологии трансляции байткода в машинный код (JIT-технология) с возможностью сохранения версий классов в машинном коде, широкое использование платформенно-ориентированного (native-кода) в стандартных библиотеках, аппаратные средства, обеспечивающие ускоренную обработку байткода (например, технология Jazelle, поддерживаемая некоторыми процессорами ARM).

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

Заключение

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

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

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

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

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

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