Файл: Классификация языков программирования. Критерии выбора среды и языка разработки программ (Язык и система программирования – понятие, сущность).pdf
Добавлен: 28.03.2023
Просмотров: 306
Скачиваний: 2
СОДЕРЖАНИЕ
ГЛАВА 2. КЛАССИФИКАЦИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ
2.1. Классификация по поддерживаемым методологиям
2.2. Классификация по принадлежности к семействам
2.3. Классификация по ориентации на предметные области
2.4. Классификация по степени абстракции от аппаратуры
2.5. Классификации по истории языков программирования
ГЛАВА 3. СОВРЕМЕННЫЕ ЯЗЫКИ И СИСТЕМЫ ПРОГРАММИРОВАНИЯ
В 1954 г. группа разработчиков фирмы IBM под руководством Джона Бекуса приступила к разработке языка программирования. Местом рождения Фортрана стала штаб-квартира фирмы IBM в Нью-Йорке. Несмотря на это группа разработчиков продолжала работу над языком. Работа над компилятором языка оказалась не простой и продолжалась более двух лет. В апреле 1957 г. компилятор языка Фортран был готов для использования владельцами машины IBM-704. Вначале Фортран не хотели признавать, однако по сравнению со своими предшественниками Фортран был весьма прост для обучения и использования.
Через пять лет Фортран использовался на шести различных моделях компьютеров фирмы IBM. Новый язык не был лишен недостатков, устранение которых привело к появлению Фортрана II, который позволял присоединять программы на ассемблере. В 1958 г. была создана версия ФортранIII, а версия Фортран IV, расширившая возможности языка появилась в 1962 г. Поскольку Фортран многократно адаптировался ко все новым системам машин, постепенно накапливались отличия. Для наведения порядка проводились стандартизации языка в 1966 г., а затем в 1977 г. Фортран оказался первым широко распространенным коммерческим языком.
3.5. PL/1, Алгол-58
В 1961 г. IBM, чтобы сохранить первенство на рынке компьютеров, занялась изготовлением “Системы-360”.Эти машины должны были удовлетворить в равной степени потребности как в аналитических вычислениях, так и в обработке данных в сфере бизнеса, и в специальных приложениях. Компьютер с такими возможностями требовал мощного языка. За полгода до окончания работы над аппаратным обеспечением IBM начала заниматься языком.
Был создан “комитет по разработке передового языка”. Комитет состоял из представителей фирм “Lockheed”, “Union Carbait”, “Standard Oil ” из Калифорнии и специалисты из отделов программирования фирмы IBM. Комитет возглавил Джорж Рэдин. Они приступили к работе в октябре 1963г, и к февралю 1964 г. спецификации языка были завершены.
Этот язык был назван PL/1 (от programming language one) работа над компилятором была поручена лаборатории фирмы IBM в Англии. Многие черты Фортрана, Кобола и Алгола нашли отражение в PL/1. Критики отмечали, что язык наделен слишком многими качествами, что привело к повтору недостатков предыдущих языков.
27 мая 1958 г. в Федеральном техническом университете г. Цюрих состоялась конференция по созданию нового языка программирования. Причиной созыва конференции послужило отсутствие единого языка научного программирования. Через неделю после заседания возник язык , названный Алгол-58. В ходе конференции возникало много споров. Американцы настаивали чтобы новый язык был близок к уже используемым языкам, а европейцев больше интересовала мощь языка для решения сложных математических задач. Самый большой спор возник из-за формы записи десятичных дробей
Язык, созданный на этой конференции, многое унаследовал от Фортрана. В 1959 году Джон Бекус ознакомил с Алголом организацию потребителей компьютеров. От фирмы IBM потребовали реализовать Алгол, но она тормозила развитие языка, возлагая основные свои надежды на Фортран. Несмотря на это Бекус продолжал активно участвовать в развитии Алгола. Вернувшись в Цюрих он занялся синтаксисом языка, в результате чего разработал строгую и точную систему определения каждой структуры языка логическим образом.
Последующее уточнение этой работы датским ученым Питером Науром привел к тому, что такой подход стали называть “форма Бекуса-Наура” (БНФ). Язык образца 1958 года являлся эскизом языка Алгол. В январе 1960г. 13 представителей стран Европы и США, включая 7 человек с прошлой конференции, встретились в Париже чтобы исправить недостатки предыдущей версии языка. Одним из вновь прибывших на эту конференцию был Питер Наур, предложивший вариант измененного Алгола, записанного при помощи БНФ. Группа программистов единогласно приняла решение по языку. (см. рис.) Таким образом появился язык Алгол-60. На него обрушилось много критики в основном со стороны американцев. Программисты Европы сразу приняли Алгол-60 . Он позволил их компьютерной индустрии обрести независимость от американской технологии.
3.6. С и С++
Язык Си был разработан и реализован Д. Ритчи в 1972г. в фирме Bell Labs, использовался в самых различных приложениях, в основном под управлением операционной системы UNIX. Он представлял собой дальнейшее развитие языка Би (B), который основывался на созданном в Кембриджском университете языке BCPL (от Basic Combined Programming Language- базовый комбинированный язык программирования), который в свою очередь был потомком Алгола-60. В 1977г. Была начата работа по созданию машинно-независимой версии транслятора с языка Си с целью облегчит его перенос в новые окружения. Результатом этого явилось появление совместимых по входному языку трансляторов с языка Си для 15 различных типов ЭВМ. В ходе работ по созданию мобильного транслятора с языка Си сам он был переработан для повышения мобильности написанных на нем программ.
Первые версии языка программирования Си++ (тогда он назывался ";Си с классами";) были разработаны в начале 80-х годов Бьярном Страуструпом, сотрудником знаменитой AT&T Bell Labs, где ранее были разработаны операционная система UNIX и язык программирования Си. По признанию самого автора языка, Си++ никогда не разрабатывался на бумаге. Проектирование, реализация и документирование новых возможностей происходили фактически одновременно. Единственной целью разработки было создание языка, на котором было бы удобно программировать автору и его друзьям. За основу был взят популярный в среде профессиональных разработчиков язык программирования Си. Первыми средствами, которыми был расширен Си, стали средства поддержки абстракций данных и объектно-ориентированного программирования. Как это принято в AT&T, описание нового языка не было опубликовано сразу. Первыми его пользователями стали сами сотрудники Bell Labs.
В 1993 впервые был реализован коммерческий транслятор, и сам язык был назван ";С++";. Первым транслятором языка был препроцессор cfront, транслирующий программу на Си++ в эквивалентную программу на Си. Если не считать документацию к транслятору cfront, первой книгой с описанием языка стала ";The C++ Programming Language"; (Addison-Wesley, 1985), переведенная на русский язык и изданная в 1991 году (Страуструп Б. Язык программирования С++. М.: Радио и Связь, 1991). С этого момента началось его бурное распространение и создание многочисленных реализаций.
C 1985 года в язык были введены новые возможности: множественное и виртуальное наследование, шаблоны функций и классов, обработка исключительных ситуаций. Кардинально изменена семантика совместного использования оператора new, изменен синтаксис для вложенных классов. С момента опубликования и до настоящего момента язык постоянно усовершенствовался и расширялся. Важным этапом в его развитии стала публикация в 1990 году подробного и достаточно строгого описания языка. Фактически одновременно с этим началась стандартизация языка. Инициатором стандартизации выступил не автор языка. Более того, Страуструп всегда довольно прохладно относился к попытке его полной стандартизации и выступал за реализации, в которых базовые возможности языка расширялись бы средствами и библиотеками, характерными только для данной реализации.
Объединенный ANSI-ISO (ANSI X3J16; ISO WG21/N0836) комитет начал функционировать в конце 1989 года. Целью его работы является создание единого стандарта для языка Си++ и его библиотечных средств. За основу проекта стандарта было взято описание языка, данное в 1990 году. В работе объединенного комитета значительное место занимает изучение возможных изменений текста проекта стандарта, а также уточнение различных правил языка. Позволим себе напомнить, что непосредственный предшественник Си++ - язык Си прошел успешно процесс стандартизации. Работа по его стандартизации завершилась в 1989 году, и стандартизованный вариант сейчас известен под именем ANSI Си. Работа по стандартизации Си++ осложнялась тем, что язык долгое время был открыт для расширений. Си++ стал довольно громоздким языком (сопоставимым разве что с языком Ada), и ни один человек сейчас не в состоянии точно помнить все его детали и тонкости. С момента начала стандартизации несколько изменилась и сама идеология Си++. Изначально автор отвергал возможность использования в языке средств динамического определения типов (rtti), однако в текущем проекте стандарта такие средства имеются. Изначально планировалось, что окончательная редакция проекта стандарта будет опубликована в 1994 году. Эти сроки были безнадежно провалены. Согласно расписанию работы комитета по стандартизации, проект стандарта принятый в апреле 1995 года, был предложен для публичного обсуждения и сделан доступен пользователям Internet. Утверждается, что с этого момента никаких серьезных изменений в текст стандарта вноситься не будет.5
3.7. Java
Объединенный ANSI-ISO (ANSI X3J16; ISO WG21/N0836) комитет начал Начало 1996 года ознаменовано появлением нового языка программирования Java.
На домашней странице WWW Consortium Java была внесена в список так называемых Мобильных Кодов - одного из перспективных направлений развития технологии World Wide Web. И вот в конце 1996 года на Западе начался бум Java, который к моменту проведения выставки Unix-Expo`96 докатился и до нашей страны.
Согласно истории технология Java (Кофе) родилась из проекта Oak (Дуб), основной целью которого была разработка объектно-ориентированных средств описания и коммуникации различного рода электронных устройств. Из-за неудачи этого проекта 1994 году опыт, накопленный в рамках его реализации, было решено применить к продуктам ориентированным на применение в Internet. С апреля 1995 года по сети свободно распространяется HotJava - интерфейс просмотра страниц World Wide Web для платформ Sun. Буквально через месяц Netscape Communication - законодатель моды в разработке программ-интерфейсов Internet, покупает лицензию на Java . В настоящее время HotJava реализована не только для SunOS и Solaris, но и для многих других Unix-платформ и Windows NT. Кроме HotJava мобильный код Java может интерпретироваться и второй версией программы Netscape Navigator для всех систем кроме Windows 3.x.
Система программирования на Java позволяет компилировать программы для компьютерной платформы, на которой она стоит в том же ключе как и любая другая, например, С или С++. В этом случае главными отличиями Java-программ, которые называются Java-applications, является использование библиотеки Java-классов, которые обеспечивают разработку безопасных, распределенных систем. При этом утверждается, что язык позволяет делать гораздо меньше ошибок при разработке программ. Главным при этом является тот факт, что в Java напрочь отсутствует адресная арифметика.6
Программы, составленные на языке программирования Java, можно разделить по своему назначению на две большие группы.
К первой группе относятся приложения Java, предназначенные для автономной работы под управлением специальной интерпретирующей машины Java. Реализации этой машины созданы для всех основных компьютерных платформ.
Вторая группа - это так называемые аплеты (applets). Аплеты представляют собой разновидность приложений Java, которые интерпретируются виртуальной машиной Java, встроенной практически во все современные браузеры.
Приложения, относящиеся к первой группе (мы будем называть их просто приложениями Java), - это обычные автономные программы. Так как они не содержат машинного кода и работают под управлением специального интерпретатора, их производительность заметно ниже, чем у обычных программ, составленных, например, на языке программирования C++. Однако не следует забывать, что программы Java без перетрансляции способны работать на любой платформе, что само по себе имеет большое значение в плане разработок для Internet.
Аплеты Java встраиваются в документы HTML, хранящиеся на сервере Web. С помощью аплетов вы можете сделать страницы сервера Web динамичными и интерактивными. Аплеты позволяют выполнять сложную локальную обработку данных, полученных от сервера Web или введенных пользователем с клавиатуры. Из соображений безопасности аплеты (в отличие от обычных приложений Java) не имеют никакого доступа к файловой системе локального компьютера. Все данные для обработки они могут получить только от сервера Web. Более сложную обработку данных можно выполнять, организовав взаимодействие между аплетами и расширениями сервера Web - приложениями CGI и ISAPI.
Для повышения производительности приложений Java в современных браузерах используется компиляция ";на лету";- Just-In-Time compilation (JIT). При первой загрузке аплета его код транслируется в обычную исполнимую программу, которая сохраняется на диске и запускается. В результате общая скорость выполнения аплета Java увеличивается в несколько раз.
Язык Java является объектно-ориентированным и поставляется с достаточно объемной библиотекой классов. Так же как и библиотеки классов систем разработки приложений на языке C++, библиотеки классов Java значительно упрощают разработку приложений, представляя в распоряжение программиста мощные средства решения распространенных задач. Поэтому программист может больше внимания уделить решению прикладных задач, а не таких, как, например, организация динамических массивов, взаимодействие с операционной системой или реализация элементов пользовательского интерфейса.
4. ПРАКТИЧЕСКАЯ ЧАСТЬ
4.1. Общая характеристика задачи
Используя пакет прикладных программ (ППП) на персональном компьютере (ПК), необходимо построить таблицы по заданным формам.
Определить средний балл экзаменационной сессии по курсам и по факультету.
Результаты округлить до одного десятичного знака после запятой, используя функцию ОКРУГЛ. Определить рейтинг (место по уровню успеваемости) каждого курса.
Ввести текущее значение даты между таблицей и ее названием.
По данным графы 1 и 2 построить круговую диаграмму с заголовком, подписями данных и легендой.
4.2. Описание алгоритма решения задачи
Для определения среднего балла перемножим соответственно баллы и оценки (по данному курсу), сложим полученные результаты и разделим на общее количество оценок. С применением абсолютных и относительных ссылок скопируем формулы для всех курсов.