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

Автор работы: Пользователь скрыл имя, 20 Декабря 2013 в 15:24, реферат

Описание работы

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

Файлы: 1 файл

Реферат - Современные языки программирования.doc

— 205.50 Кб (Скачать файл)

Уфимский Государственный Авиационный

 Технический Университет

Реферат на тему:

«СОВРЕМЕННЫЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ»

Студент ФИРТ

Группа ПИ-108

Ягафарова Р.Р.

Научный руководитель:

Конев К.А.

Уфа–2013 
СОДЕРЖАНИЕ

 

 

ВВЕДЕНИЕ

 

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

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

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

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

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

– Исполнение: язык программирования может использовать специальные конструкции для определения и манипуляции структурами данных и управления процессом вычислений.[1]

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

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

 

1. Современные языки программирования

 

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

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

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

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

Не смотря на огромное множество  языков программирования, лишь немногие из них получили широкую известность  и признание программистов. Для того, что бы определить самые популярные языки программирования воспользуемся данными голландской компании «TIOBE Software BV» в первую очередь известной своим регулярно рассчитываемым рейтингом популярности языков программирования. Несмотря на многолетние споры, относительно качества и достоверности рейтинга, других источников позволяющих хоть как-то оценить тенденции в развитии языков программирования на сегодняшний день нет.

По данным компании «TIOBE Software BV» 20 самых популярных языков программирования на июль 2012 года представлены в таблице 1.

Таблица 1 – Рейтинг языков программирования [2]

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

Рейтинг составленный в июле 2012 года, показывает, что язык программирования "C" вышел на первое место, опередив "Java". Язык программирования "Objective-C" поднялся на 6 позиций и обошел язык программирования C++. Это связано с Apple, так как "Objective-C" используется больше всего разработчиками мобильных приложений для iPhone и Ipad, а C++ используется для разработки высоко нагружаемых систем.

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

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

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

Рассмотрим эти языки программирования с нескольких основных позиций:

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

 

2. Парадигмы программирования

 

Парадигма (от греч. παράδειγμα, «пример, модель, образец») – набор теорий, стандартов и методов, которые совместно представляют собой способ организации научного знания.

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

Парадигма программирования – модель или подход к решению проблемы.

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

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

На сегодняшний день самые известные  модели программирования:

– Императивная

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

– Декларативная

Функциональное программирование

Логическое программирование

– Структурная

Модульное программирование

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

– Метапрограммирование

Генерация кода

Самомодифицирующийся код

Рассмотрим эти модели подробнее.

2.1 Императивная модель

 

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

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

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

2.2 Декларативная модель

 

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

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

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

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

Логическое программирование – основанное на автоматическом доказательстве теорем, с использованием механизмов логического вывода информации с использованием заданных фактов и правил вывода, основанных на формальных исчислениях. Логическое программирование основано на теории и аппарате математической логики с использованием математических принципов резолюций.[4]

2.3 Структурная модель

 

Структурное программирование – это парадигма программирования, в основе которой лежит представление программы в виде иерархической структуры блоков. В соответствии с данной парадигмой:

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

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

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

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

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

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

Понятие «класс» подразумевает некоторое поведение и способ представления. Понятие «объект» подразумевает нечто, что обладает определённым поведением и способом представления.[5]

 

2.4 Метапрограммирование

 

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

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

Генерация кода – при этом подходе код программы не пишется вручную, а создается автоматически программой-генератором на основе другой, более простой программы. Реализуется двумя основными методами:

Шаблоны. Решают задачу, если соблюдение «правил» сводится к вставке в программу повторяющихся (или почти повторяющихся) кусков кода. Помимо этого, обладают еще рядом достоинств: например, помогают повторному использованию.

Информация о работе Современные языки программирования