Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Основная задача программирования





Основная задача программирования

Основная задача программирования – комплексная задача проектирования системы решения задачи обработки информации.

 

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

 

Современные представления о технологиях программирования ушли далеко вперед от простого описания алгоритма на конкретном ЯП.

 

Однако Языки программирования нужно знать

 


 

Языки программирования как формальные языки описания алгоритмов.

 

 

Языки программирования высокого уровня играют роль средства связи между программистом и компьютером, а также между программистами. Это обстоя­­тельство накладывает на язык многие обязательства:

 

1.Языкдолжен быть близок к тем фрагментам естественных языков, кото­рые обеспечивают конкретную предметную область деятельности человека;

 

(Язык, ориентированный на деловые сферы применений, должен содержать понятия, используемые в этом виде деятельности: документ, счет, база данных и т.п.).

 

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

 

(например, предложение “Найти документ X в базе Y“ должно породить программу в машинном языке, осуществляющую требуемый поиск).

 

3.Язык программирования не только поддерживает предметно-ориентирован­ную деятель­ность, но и стимулирует ее развитие

 

(понятие базы данных, вычислительной сети привело к революции в деловой деятельности).

 

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

 

 

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

 


Краткая история развития языков программирования

Идея языка программирования появилась так же давно, как и универсальные вычислительные машины - на рубеже 40-50 годов. Уже на первых шагах их эксплуатации выяснились недостатки использования машинного кода, определились методы устранения или уменьшения этих недостатков: использование библиотек стандартных подпрограмм, имен вместо адресов, предварительного распределения памяти и т.д.

 

Большое влияние на последующие разработки оказал язык Fortran, созданный в IBM под руководством Дж. Бэкуса (1954-57гг.) В то же время М.Г.Хоппер (Ramington-Rand Univac) и ее группа разработали язык обработки коммерческой информации Flow-Matic. М.Г.Хоппер принадлежит термин “компилятор”. Так называлась ее первая транслирующая программа.

 

Первые производственные языки программирования появились на рубеже 50-60 годов, знаменуя собой новую эпоху в развитии вычислительных машин и методов обработки информации. Эти языки высокого уровня были реализованы на первых ЭВМ 2-го поколения.


Вот некоторые даты:

1957 г. Fortran США, IBM, Дж. Бэкус: по существу, первый широко применяемый язык, ориентированный на научно-инженерные и численные задачи.

1960 г. Cobol США, Объединенный комитет производителей и пользова­телей ЭВМ: язык для коммерческих задач.

1960 г. Algol-60 Улучшенный вариант языка Algol-58, Европа, США, международная рабочая группа: универсальный язык, прародитель Pascal-я и многих других языков европейского стиля.

1965 г. BASIC Дж. Кемени, Т.Куртц, США, Дартмутский колледж: язык для начинающих.

1969 г. Logo С.Пейперт, США, Массачусетский технологический институт: язык для детей.

1966 г. PL-1 группа IBM,США: Многоцелевой язык для систем коллективного пользования.

1968 г. Algol-68 Европа, международная рабочая группа: европейский ответ на PL-1.

1970 г. Pascal Н.Вирт, Швейцария, федеральный институт технологии, Цюрих: язык для обучения специалистов в области информатики.

1959 г. Lisp Дж.Маккарти, США, Массачусетский технологический институт: язык функционального программирования.

1972 г. Prolog А.Колмероэ и его коллеги из лаборатории Искусственного интеллекта, Марсельский университет, Франция: язык логического программирования, завоевавший широкую известность как язык для задач обработки баз знаний.

1972-75гг. С и его развитие С++. Д. Керниган, Д. Ричи, Б. Страустрап, AT & T Bell Lab.,: языки системного программирования, получившие широкое распространение благодаря своей эффективности и поддержке ведущих программистских компаний.

1975 г. Modula-2 Н.Вирт, Развитие языков Pascal и Modula для системного програм­мирования.

Первые языки программирования несли в себе явно выраженные признаки ориентации на структуру ЭВМ.

 

В результате теоретического осмысления процессов, происходивших в програм­ми­ровании, был выработан так называемый структурный подход к написанию программ, а для его реализации разработаны такие языки, как Pascal, Modula-2.

 

Перенесение акцентов с ЭВМ на программы еще более ярко выразилось в появлении принципиально новых стилей программирования

 

- функционального программирования (Lisp),

- логического программирования (Prolog),

- алгебраического программирования (Reduce, APS).

 


 

Современный этап в развитии программирования характеризуется следу­ющими чертами:

 

* Развитие языков программирования для мультипроцессорных и мульти­машинных систем;

* Развитие декларативных языков программирования, ори­ен­ти­рованных на задачи искус­ственного интеллекта;

* Развитие объектно-ориентированных языков, в которых иерархия абстракций позволяет наращивать средства языка, одновременно меняя архитек­ту­ру ЭВМ применительно к рассмат­риваемому классу проблем.


Изучение языка программирования заключается в изучении его синтаксиса и семантики

Средства определения языка

 

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

 

Для формального опре­деления языковых конструкций используют т.н. метаязыки (фор­маль­ные языки описания формальных языков).

 

Описание языка программирования на метаязыке – составная часть т.н. спецификаций транслятора ЯП.

 

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

 

 

(К сожалению, принятый во многих современных книгах по програм­ми­рованию уровень строгости изложения заимствован скорее из книг по кулинарии).


Язык формул Бэкуса-Наура

Каждый язык, в том числе и формальный, имеет свой понятийный аппарат (Слово, знак препинания, предложение, … - понятия (языковые конструкции), исполь­зу­е­мые для описания естественных языков).

 

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

Заметим, что сами эти термины представляют новый (третий) уровень абстракции в описании языка. Определим теперь язык Бэкуса-Наура.


Понятие языка - это (метаязыковое) имя определяемой языковой конст­рукции. Имя конструкции в определении языка играет роль символа, который назы­ва­ется метасимволом (нетерминальным символом).

 

Определяемый язык представлен в виде конечного набора метасимволов (метасловаря) языка.

 

Метасловарь пред­став­ляет понятийный аппарат языка программирования.

 

С формальной точки зрения мета­сло­варь удобно считать алфавитом нетерминальных символов (метаалфавитом)

 

Вместе с метаалфавитом ЯП определяется и лексический словарь ЯП – конечный набор лексем.

 

С формальной точки зрения лекси­чес­кий словарь также удобно считать алфавитом терминальных символов.

 

Лексема - это ато­ма­р­ный объект языка.


Синтаксические диаграммы

Синтаксические диаграммы – наглядный способ изображения формул Бэкуса-Наура.

 
 


 

 

 

Понятие языка, определяемое диаграммой, указано в начале диаграммы

 

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

Лексемы заключаются в овалы

Нетерми­наль­ные символы - в прямоугольники.

 

Направление движения вдоль диаграм­мы (обхода) указы­вают стрелки, соединяющие объекты.


Описание языка программирования на языке синтаксических диаграмм представляет собой набор диаграмм, каждая из которых определяет одно из понятий языка.

 

В синтаксически правильной программе все ее объекты удов­летворяют соответствующим диаграммам.

 

Синтаксические диаграммы использовались автором языка Паскаль Н. Виртом при его описании.

В заключение приведем определение блока как на языке Бэкуса-Наура, так и на языке синтаксических диаграмм.


<Блок>::= [<Раздел меток>]

[; <Раздел констант ]

[; <Раздел типов>]

[; <Раздел переменных>]

[; <Раздел процедур и функций>]

<Раздел операторов>

 

 

Алфавит языка

В языке используются:

Данные

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

В языке Паскаль представляются числа и строки.

Целые числа записываются в десятичной системе счисления: 137, -56, +26.

Вещественные числа используют также десятичную нотацию, причем целая часть отделяется от дробной не запятой, а точкой. Для обозначения порядка числа в качестве разделителя используется буква Е. Например, -5.1Е14 означает -5.1, умноженное на 10 в степени 14 (-5,1*1014). Степени чисел могут быть и отрицательными: 6.74Е-8, -56.89Е-10.

Последовательности символов, заключенные в одиночные кавычки, называются строками. Если в строку нужно включить кавычку, то вместо нее записывают две кавычки:

‘ строка из символов ‘, ‘ апостроф ‘’ в слове ‘

Имена

Именем в языке называется последовательность (латинских) букв, знака подчеркивания ‘_’ и цифр, начинающаяся с буквы либо со знака подчеркивания. Хотя имена могут быть сколь угодно длинными, в реализации количество значащих символов в имени может быть ограничено. В стандарте языка имена различаются по первым восьми символам. Это означает, что имена VeryLongNumber, VeryLongCardinal в стандарте языка обозначают (именуют) один и тот же объект. Кроме того, язык не различает больших и маленьких букв. Поэтому имена Sin, SIN, sin неразличимы.

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

Pi, Сonstant - имена констант; x, y1, y2, Counter - имена переменных;

Integral, MaxMin - имена процедур; Man, Color, WeekDay - имена типов;

Некоторые имена предопределены заранее. Например:

Sin - имя для обозначения функции синус; Read - имя для обозначения процедуры чтения;

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

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

Структура программы

Программа на языке Паскаль состоит из заголовка и блока. Блок называют телом програм­мы. Заголовок программы отделен от тела точкой с запятой. Точка, стоящая после блока, служит признаком конца программы. Таким образом, программа имеет вид:


 

 
 

 


Рис.1

 

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

Основная задача программирования

Основная задача программирования – комплексная задача проектирования системы решения задачи обработки информации.

 

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

 

Современные представления о технологиях программирования ушли далеко вперед от простого описания алгоритма на конкретном ЯП.

 







ЧТО ПРОИСХОДИТ, КОГДА МЫ ССОРИМСЯ Не понимая различий, существующих между мужчинами и женщинами, очень легко довести дело до ссоры...

Что способствует осуществлению желаний? Стопроцентная, непоколебимая уверенность в своем...

ЧТО И КАК ПИСАЛИ О МОДЕ В ЖУРНАЛАХ НАЧАЛА XX ВЕКА Первый номер журнала «Аполлон» за 1909 г. начинался, по сути, с программного заявления редакции журнала...

Система охраняемых территорий в США Изучение особо охраняемых природных территорий(ООПТ) США представляет особый интерес по многим причинам...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.