четверг, 23 октября 2014 г.

Домашняя работа №4

№1

Определения:
1. Алфавит — это множество (как правило конечное) символов или букв, например латинских букв и цифр.
2. Синтаксис — сторона языка программирования, которая описывает структуру программ как наборов символов (обычно говорят — безотносительно к содержанию). Синтаксису языка противопоставляется его семантика. 
3. Сема́нтика в программировании — дисциплина, изучающая формализации значений конструкций языков программирования посредством построения их формальных математических моделей. 
Классификация 1. Классификация по уровню.
1. Низкого уровня: CIL ,Java,Ада, Ассемблер.
2.Высокого уровня: Ruby, Perl, Паскаль.
3. Сверхвысокого уровня:  Ruby,Haskell,Perl.
Классификация 2. Классификация по виду обрабатываемой информации.
1.Вычислительные языки: Фортран, Паскаль, Алгол.
2. Языки символьной обработки: Лисп,Пролог, Снобол.
Классификация 3. Классификация по поколению.
1.Машинно-ориентированные с ручным управлением памяти на компьютерах первого поколения.
2. Assemble.
3.Basic, Pascal.
4.SAIL, InterLisp, Prolog, SQL.
5.Пролог, ЛИСП, Visual Basic, Delphi.
Кроме поколений языков выделяют направления развития языков программирования. В современной информатике существуют два основных направления развития языков программирования: процедурное и непроцедурное.
1. Процедурное программирование возникло на заре вычислительной техники и получило широкое распространение. В процедурных языках программа явно описывает действия, которые необходимо выполнить, а результат задается только способом получения его при помощи некоторой процедуры, которая представляет собой определенную последовательность действий. Среди процедурных языков выделяют в свою очередь:
Структурные языки. В структурных языках одним оператором записываются целые алгоритмические структуры: ветвления, циклы и т.д. (Паскаль, Си, Ада, ПЛ/1)
Операционные языки. В операционных языках для этого используются несколько операций (Фортран, Бейсик, Фокал).
Функциональные языки. В функциональных языках программа описывает вычисление некоторой функции. Обычно эта функция задается как композиция других, более простых, те в свою очередь разлагаются на еще более простые задачи и т.д. Один из основных элементов функциональных языков - рекурсия. Присваивания и циклов в классических функциональных языках нет (Lisp, Clojure, Haskell).

2. Непроцедурное (декларативное) программирование появилось в начале 70-х годов 20 века, но стремительное его развитие началось в 80-е годы, когда был разработан японский проект создания ЭВМ пятого поколения, целью которого явилась подготовка почвы для создания интеллектуальных машин. К непроцедурному программированию относятся:Логические языки. В логических языках программа вообще не описывает действий. Она задает данные и соотношения между ними. После этого системе можно задавать вопросы. Машина перебирает известные и заданные в программе данные и находит ответ на вопрос. Порядок перебора не описывается в программе, а неявно задается самим языком. Построение логической программы вообще не требует алгоритмического мышления, программа описывает статические отношения объектов, а динамика находится в механизме перебора и скрыта от программиста (Prolog).

Можно выделить еще один класс языков программирования – объектно-ориентированные языки высокого уровня. На таких языках не описывают подробной последовательности действий для решения задачи, хотя они содержат элементы процедурного программирования. Объектно-ориентированные языки, благодаря богатому пользовательскому интерфейсу, предлагают человеку решить задачу в удобной для него форме. Языки описания сценариев предполагают стиль программирования, весьма отличный от характерного для языков системного уровня. Они предназначаются не для написания приложения с нуля, а для комбинирования компонентов, набор которых создается заранее при помощи других языков. Развитие и рост популярности Internet также способствовали распространению языков описания сценариев (С++, Java, Python)

№2

№1. Паскаль.

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

№2. Ruby.

1) классификация: язык программирования сверхвысокого уровня;
2) класс: мультипарадигмальный: динамический, объектно-ориентированный, рефлективный, императивный, функциональный;
3) история появления и развития: создатель Ruby — Юкихиро Мацумото (Matz) — интересовался языками программирования, ещё будучи студентом, но идея о разработке нового языка появилась позже. Ruby начал разрабатываться 23 февраля 1993 года и вышел в свет в 1995 году.
Название навеяно языком Perl, многие особенности синтаксиса и семантики из которого заимствованы в Ruby: англ. pearl — «жемчужина», ruby — «рубин».
Целью разработки было создание «настоящего объектно-ориентированного», лёгкого в разработке, интерпретируемого языка программирования
4) область применения: Ruby целесообразно применять для обучения студентов младших курсов основам программирования в целом и объектно-ориентированному программированию в частности; кроме того, язык Ruby может эффективно и широко применятся для разработки веб-приложений.

№3. Haskell.

1) классификация: язык программирования сверхвысокого уровня;
2) класс: функциональный, ленивый, модульный;
3) история появления и развития: Хаскель принадлежит к семейству языков ML. В 1990 г. была предложена первая версия языка, Haskell 1.0. В дальнейшем работа продолжилась, и в 1999 г. был опубликован «The Haskell 98 Report», который стал стабильным стандартом языка на много лет. Язык, однако, продолжал бурно развиваться, компилятор GHC был фактическим стандартом в отношении новых возможностей.
Сейчас разработка новых версий языка идёт открыто, этот процесс получил название Haskell’(Haskell Prime [ˈhæskəl praɪm], «Хаскель-штрих»). Последняя версия языка — Haskell 2010 — была объявлена в конце 2009 г, но последней «значительной» версией (стандартом) остаётся Haskell 98;
4) область применения: Haskell позволяет легче производить гибкий, обслуживании, высоким качеством программного обеспечения.



Комментариев нет:

Отправить комментарий