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

Определение понятия и изучение истории развития языков программирования как формальных знаковых систем, предназначенных для записи компьютерных программ. Запросы, графика и генераторы языков четвертого поколения. Преимущества и недостатки языков 4GL.

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык русский
Дата добавления 13.11.2012
Размер файла 283,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Министерства общего и профессионального образования РФ

Московский государственный институт электроники и математики

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

РЕФЕРАТ

по курсу: «Информационные технологии в экономике»

на тему: «Языки программирования 4GL»

студентки группы МЭ-41

Карасевой Ксении Валериевны

Москва, 2011 г.

Содержание

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

2. История развития языков программирования

3. Понятие языков четвертого поколения

4. Типы языков четвёртого поколения

5. Progress 4GL

6. Преимущества и недостатки языков 4GL

Заключение

Список литературы

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

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

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

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

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

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

язык компьютерная программа графика генератор

2. История развития языков программирования

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

В первое поколение (1GL) входят языки, созданные в 40-50 гг., когда компьютеры только появились на свет. В то время программы писались в машинных кодах, то есть каждая компьютерная команда вместе с ее операндами вводилась в ЭВМ в двоичном виде. Это требовало огромных усилий по набору цифровых текстов и приводило к множеству трудноуловимых ошибок. Конечно, ни о каких мало-мальски больших проектах речи идти не могло. Ситуация качественно изменилась в середине 50-х годов, когда был написан первый ассемблер , что само по себе можно считать подвигом, учитывая довольно сложную логику программы. Хотя этот ассемблер был неполноценным в сегодняшнем понимании, но он позволял задавать названия команд в символическом виде и указывать числа не только в двоичном, но и в десятичном или шестнадцатеричном формате, что существенно облегчало работу программистов.

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

Расцвет второго поколения языков программирования (2GL) пришелся на конец 50-х - начало 60-х годов. Был создан символический ассемблер, позволявший писать программы без привязки к конкретным адресам памяти. В него было введено понятие переменной, и он, по сути, стал первым настоящим (хоть и машинно-ориентированным) языком программирования со своим компилятором. Скорость создания и эффективность программ резко возросли. Ассемблеры активно применяются в настоящее время, как правило, для создания программ, максимально использующих возможности аппаратуры - различных драйверов, модулей состыковки с нестандартным оборудованием и т. д. В некоторых областях, например, в машинной графике, на ассемблере пишутся библиотеки, эффективно реализующие стандартные алгоритмы обработки изображений. Кроме того, среди программистов просто есть немало людей, предпочитающих использовать ассемблер в своей работе. Как правило, это специалисты, хорошо разбирающиеся в электронике.

Третье поколение ЯП (3GL) принято относить к 60-м годам. В это время родились языки, которые называют универсальными языками высокого уровня, с их помощью можно решать задачи из любых областей. Это общеизвестные Фортран, Кобол, Алгол и др. Такие качества новых языков, как относительная простота, независимость от конкретного компьютера и возможность использования мощных синтаксических конструкций позволили резко повысить производительность труда программистов. Кроме того, понятная большинству пользователей процедурная идеология этих языков позволила привлечь к написанию небольших программ (как правило, расчетного или учетного характера), большое количество специалистов из некомпьютерных областей. Подавляющее большинство языков 3GL успешно применяется и сегодня.

3. Понятие языков четвертого поколения

СРЕДСТВА РАЗРАБОТКИ четвертого поколения

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

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

При классификации языков выделяют следующие типы языков:

1. Ассемблерные языки -- являются символьным представлением машинных языков конкретного компьютера.

2. Метаязыки -- языки, используемые для формального описания других языков.

3. Императивные языки -- это языки, оперирующие командами, изменяющими значение элементов данных, располагают операциями присваивания и циклами. К ним относятся все современные языки программирования.

4. Декларативные языки -- языки, оперирующие инструкциями данным и отношениями между ними. Алгоритм скрывается семантикой языка. Это аппликативные языки, языки логики и объектно-ориентированные языки. Примеры декларативных свойств - сложные множества и инструкции поиска по шаблону.

5. Процедурные языки -- позволяют определять отдельные методы вычисления какой-нибудь проблемы. Включают в себя императивные и функциональные языки.

6. Аппликативные языки -- функции применяются к значениям без побочного эффекта. Это Функциональные языки во всем своем многообразии.

7. Функциональные языки -- оперируют функциями высокого порядка. В них манипуляции совершаются напрямую функциями, а не данными. К категории функциональных языков относятся Lisp, FP, APL, Nial, Krc.

8. Объектно-ориентированные языки -- языки, в которых данные и функции, имеющие доступ к ним рассматриваютс как один модуль. Пример: Object Pascal, С++, Java, Objective Caml.

9. Языки запросов -- обеспечивают интерфейс к базам данных.

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

11. Языки логики -- языки, оперирующие предикатами и их отношениями p(x, Y). Программы состоят из набора заключений Хорна, которые могут быть:

12. фактами - p(X,Y) есть истина;

13. правилами - p истинно, если q1, q2 и qn истинны;

14. запросами - верны ли q1, g2 и gn? Где gi - цель.

Программа на языке 4GL может состоять из нескольких файлов (модулей) с исходными текстами на 4GL. К ней так же относятся файлы с описанием используемых экранных форм, которые компилируются отдельно. Имя каждого модуля должно иметь расширение .4gl (например, module1.4gl), а имя файла с описанием экранных форм должно иметь расширение .per (например, form2.per).

Каждый модуль содержит описания переменных и несколько процедурных блоков function (подпрограммы) и report (блоки печати). В программе должен быть один блок main - главный блок, начинающийся с ключевого слова main. На него будет передаваться управление при старте программы.

Формат записи операторов 4GL свободный. Можно писать все подряд на одной строке, один оператор на нескольких строках, слова операторов можно разделять произвольным количеством пробелов и комментариев. Никакими значками (типа) операторы разделять не нужно. Окончание операторов определяется по контексту.

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

Компилятору языка безразлично, большими или маленькими буквами пишутся операторы. Он их не различает.

Существует шесть категорий языков четвертого поколения:

- Языки запросов

- Генераторы отчетов

- Генераторы приложений

- Графические языки

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

- Пакеты прикладных программ

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

На рис. 1 показана схема этих приложений и даны примеры некоторых известных программ каждой из категорий.

Рис. 1 Языки четвертого поколения

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

4. Типы языков четвёртого поколения

Языки запросов (query languages) являются языками высокого уровня, которые предназначены для извлечения информации из баз данных. Обычно эти языки интерактивны, работают в реальном режиме времени и способны формировать запросы к не стандартизированным данным. Часто они бывают тесно связанными с системами управления базами данных и некоторыми другими программами для ПК. С помощью языка запросов можно выполнять поиск необходимой информации в базе данных, используя простые или сложные критерии отбора, с последующим выводом результатов поиска на экран монитора или печатающее устройство. Языки запросов имеют различные синтаксис и структуру, некоторые из них поддерживают не только поиск информации, но и динамическое обновление данных. Пример обычного пользовательского запроса, выполненный с помощью двух различных языков запросов, Query-by-Example и FOCUS, вы можете видеть на рис. 2

Рис. 2

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

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

Графические языки (graphical languages). Генераторы графического представления данных представляют собой инструмент, предназначенный для извлечения информации из базы данных и отображения ее в виде диаграмм с графическим представлением существующих тенденций и связей. Обычно с помощью подобного генератора создаются гистограммы, круговые, линейчатые, точечные диаграммы и т.д. Большинство подобных инструментов могут выполнять над данными арифметические и логические операции. Примерами популярных графических языков могут служить SAS, Harvard Graphics и Lotus Freelance Graphics.

Генератор приложений (application generators) представляет собой инструмент для создания программ, взаимодействующих с базой данных. Генераторы приложений обычно состоят из предварительно созданных модулей, содержащих фундаментальные функции, которые требуются для работы большинства программ. Эти модули, обычно создаваемые на языках высокого уровня, образуют "библиотеку" доступных функций. Пользователь указывает, какие задачи программа должна выполнить, а генератор приложений определяет, как их следует выполнить.

Языки программирования очень высокого уровня (very high-level programming languages) служат для генерирования программного кода с меньшим количеством инструкций, чем у обычных языков, таких как FORTRAN или COBOL. Программы, разрабатываемые с применением языков очень высокого уровня, могут быть созданы в более короткие сроки. Хотя некоторые возможности этих языков могут быть использованы обычными пользователями, они все же создавались для повышения производительности труда профессиональных программистов.

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

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

5. Progress 4GL

Язык Четвертого Поколения PROGRESS (4GL) является функционально полным высокоуровневым, объектно-ориентированным языком разработки приложений, который позволяет удовлетворять всем требованиям, предъявляемым к современным приложениям, в тоже время, уменьшая сложность и повышая производительность их разработки.

4GL содержит все необходимые программные конструкции для решения самых различных аспектов программирования сложных приложений без необходимости прибегать к менее эффективным и менее переносимым языкам третьего поколения. Кроме этого, 4GL обеспечивает поддержку и переход между тремя основными принципами программирования: структурированным, событийно-управляемым и объектно-ориентированным, - от Вас не требуется осваивать новые принципы программирования для того, чтобы успешно работать с PROGRESS. Для завершения процесса разработки промышленного приложения Вам потребуются средства разработки не только логики взаимодействия с пользователем, но также потребуются средства для решения таких важных задач, как:

- Автоматический контроль транзакций и блокирование записей

- Получение и обработка информации из баз данных

- Сложные вычисления и обработка данных

- Пакетная обработка

- Генерация отчетов

- Целостность базы данных и требования безопасности

- Поддержка двухбайтовых кодировок

Язык 4GL содержит все функции и операторы, необходимые для удовлетворения вышеперечисленных требований. Но, в отличие от остальных инструментальных средств, менее ориентированных на разработку приложения в архитектуре клиент/сервер, PROGRESS не требует от Вас использования различных языков программирования для отдельного программирования обработки данных на клиенте, серверных процессов и пакетной обработки на сервере.

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

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

- язык поддерживает разработку как графических (Windows NT, Windows 95, Windows 98), так и символьных (UNIX terminals, Windows NT console) пользовательских интерфейсов, а также процедур, вовсе не имеющих пользовательского интерфейса (бизнес-логика, триггеры базы данных);

- формально не являясь "каноническим" объектно-ориентированным языком, таким как C++ или Java, PROGRESS 4GL тем не менее позволяет создавать так называемые бизнес-компоненты высокого уровня или SmartObjects, инкапсулирующие элементы данных, объекты пользовательского интерфейса и логику их обработки (методы). PROGRESS SmartObjects могут включать в себя другие SmartObjects, обрабатывать и генерировать события, а также обмениваться сообщениями, что позволяет собирать из них сложные многооконные приложения. В качестве объектов Windows-приложений могут использоваться также компоненты ActiveX, что делает возможности построения графического интерфейса практически безграничными;

- приложения на языке PROGRESS 4GL могут работать как с локальными (архитектуры "single user" и "host-terminal"), так и с удаленными (архитектура "клиент-сервер") базами данных PROGRESS, а также взаимодействовать с приложениями PROGRESS на удаленных ЭВМ с помощью технологии сервера приложений AppServer (многоуровневая архитектура "клиент-сервер");

- хотя максимальная эффективность и производительность достигается при работе PROGRESS-приложений совместно с СУБД PROGRESS, приложения на языке PROGRESS 4GL могут обращаться и к базам данных третьих фирм напрямую (Oracle, DB2/400) или через интерфейс ODBC. С другой стороны, приложения, написанные на других языках (Java, C, C++, Visual Basic, Delphi и др.) могут не только обращаться к базам данных PROGRESS через интерфейсы ODBC/JDBC, но и (начиная с версии 9) вызывать процедуры, написанные на языке PROGRESS 4GL, через интерфейсы ActiveX и Java RMI (технология Open AppServer), что позволяет легко интегрировать базы данных и приложения PROGRESS в существующие гетерогенные информационные системы, а также комбинировать различные технологии при разработке новых приложений.

6. Преимущества и недостатки языков 4GL

ПРЕИМУЩЕСТВО ЯЗЫКОВ 4GL:

- Увеличение скорости разработки проектов

- Снижение числа ошибок и повышение общей надежности работы больших программных комплексов

- Возможность быстрого и легкого внесения изменений в готовые проекты

- Упрощение самих языков для конечного пользователя

- Активное внедрение технологий визуальной разработки

- Все средства разработки 4-го поколения имеют мощные интегрированные оболочки и обладают простым и удобным пользовательским интерфейсом

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

НЕДОСТАТКИ ЯЗЫКОВ 4GL:

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

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

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

Так же во время работы с языком 4GL ,можно отметить еще несколько его (+) и (-) возможностей:

(+)

- максимальная производительность для баз данных Progress

- максимальная оптимизация баз данных Progress

- Использует все преимущества характерные для баз данных

(-)

- синтаксис не является промышленным стандартом

Заключение

Изобретение языка программирования высшего уровня позволило нам общаться с машиной, понимать её (если конечно Вам знаком используемый язык), как понимает американец немного знакомый с русским языком древнюю азбуку Кириллицы. Проще говоря, мы в нашем развитии науки программирования пока что с ЭВМ на ВЫ. Но если мы обратим внимание на темпы роста и развития новейших технологий в области программирования, то можно предположить, что в ближайшем будущем, человеческие познания в этой сфере, помогут произвести на свет языки, умеющие принимать, обрабатывать и передавать информации в виде мысли, слова, звука или жеста. Так и хочется назвать это детище компьютеризированного будущего: «языки программирования "высочайшего" уровня». Возможно, концепция решения этого вопроса проста, а ближайшее будущее этого проекта уже не за горами, и в этот момент, где-нибудь в Запорожье, Амстердаме, Токио или Иерусалиме, перед стареньким 133MHz горбится молодой, никем не признанный специалист и разрабатывает новейшую систему искусственного интеллекта, которая наконец-то позволит человеку, с помощью своих машинных языков, вести диалог с машиной на ТЫ.

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

Список литературы

1. «Языки программирования: разработка и реализация» 4-ое издание под ред. А. Матросова, 2002 г.

2. С. Бобровский «Программная инженерия. Технологии Пентагона на службе российских программистов» СПб.: Питер, 2003 г.

3. www.stoporets.narod.ru

4. www.citkit.ru

5. http://samotlor.nips.ru/docum/Oracle/Favorite/sch4gl.htm

Размещено на Allbest.ru


Подобные документы

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

    презентация [873,4 K], добавлен 23.01.2013

  • Рассмотрение общих сведений и уровней языков программирования. Ознакомление с историей развития, использования языков программирования. Обзор достоинств и недостатков таких языков как Ассемблер, Паскаль, Си, Си++, Фортран, Кобол, Бейсик, SQL, HTML, Java.

    курсовая работа [759,5 K], добавлен 04.11.2014

  • Оценка современного этапа развития компьютерных технологий. История развития, классификации, сведения и уровни языков программирования. Обзор современных языков программирования: Си, его разовидности, Паскаль, Фортран, Бейсик - тенденция их развития.

    курсовая работа [46,5 K], добавлен 22.12.2010

  • Особенности способов описания языков программирования. Язык программирования как способ записи программ на ЭВМ в понятной для компьютера форме. Характеристика языка Паскаль, анализ стандартных его функций. Анализ примеров записи арифметических выражений.

    курсовая работа [292,0 K], добавлен 18.03.2013

  • Понятия структурного программирования и алгоритма решения задачи. Краткая история развития языков программирования от машинных до языков ассемблера и языков высокого уровня. Процедурное программирование на C#. Методы и программы для моделирования.

    учебное пособие [1,7 M], добавлен 26.10.2010

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

    курсовая работа [400,6 K], добавлен 10.11.2016

  • Основы систематизации языков имитационного моделирования, моделирование систем и языки программирования. Особенности использования алгоритмических языков, подходы к их разработке. Анализ характеристик и эффективности языков имитационного моделирования.

    курсовая работа [1,4 M], добавлен 15.03.2012

  • Понятия языка программирования, разновидности и характеристика языков. Исторический обзор их создания и применения. Классификация, примеры использования. Характеристики языков программирования с точки зрения элементов объектной модели, их популярность.

    реферат [463,6 K], добавлен 07.09.2009

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

    презентация [1,2 M], добавлен 19.02.2014

  • Классификация языков программирования. Использование циклических конструкций и выполнение итерационных процессов. Алгоритмические структуры циклов языков C, C++, Java, C#. Особенности современных языков программирования высокого уровня и их применение.

    курсовая работа [345,6 K], добавлен 13.11.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.