Главная » Все файлы » Просмотр файлов из архивов » Документы » С.Бобровский, О Фортране и других языках программирования

С.Бобровский, О Фортране и других языках программирования, страница 8

2017-06-17СтудИзба

Описание файла

Документ из архива "С.Бобровский, О Фортране и других языках программирования", который расположен в категории "". Всё это находится в предмете "информатика" из 2 семестр, которые можно найти в файловом архиве МАИ. Не смотря на прямую связь этого архива с МАИ, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "информатика" в общих файлах.

Онлайн просмотр документа "С.Бобровский, О Фортране и других языках программирования"

Текст 8 страницы из документа "С.Бобровский, О Фортране и других языках программирования"

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

Конечно, и стоят такие системы недешево. Например, цена многоплатформной версии Allegro Lisp составляет 4500 долларов, система Golden Common Lisp для MS-DOS, Windows и OS/2 стоит 2000 долларов. Впро­чем, существует и немалое количество некоммерческих компиляторов, например 32-разрядная версия Allegro Common Lisp for Windows (www.franz.com), GNU CL для Unix/Linux (ftp://ftp.cli.com/pub/gcl/) и другие.

Можно ожидать появления версий и для Интернета. Простой интер­претатор Лиспа на языке Java уже распространяется бесплатно, а в будущем наверняка появятся и более мощные сетевые диалекты. В силу своей простоты и эффективности этот красивый, но подзабытый в Рос­сии язык заслуживает не меньшего внимания, чем те же «раскручен­ные» С и C++.

Smalltalk: идет волна...

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

Работы над языком Smalltalk начались в 1970 году в исследователь­ской лаборатории фирмы Xerox, а закончились спустя десять лет, воп­лотившись в окончательном варианте Smalltalk-80, оказавшимся ро­доначальником наиболее полноценной объектной идеологии.

В это же время специалисты Страны восходящего солнца решали, какой же язык выбрать в качестве основы для создания своей компьютерной системы пятого поколения, наверное, самого великого неудавшегося компьютерного проекта XX века. После долгих раздумий выбор пал на Пролог, что объяснялось в первую очередь возможностью легкой расширяемости языка. Как все казалось просто: заноси новые факты в базу и получай готовые решения! К сожалению, парадигма объектного мышления в те годы еще не властвовала над умами разработчиков. Фактически единственными объектными языкам были Симула-67 и Smalltalk, однако преимущества последнего не могли быть оценены по достоинству. В 70-е годы еще фактически не было опыта создания круп­ных распределенных систем обработки и анализа информации, когда практически невозможно реализовать серьезный проект без хорошей объектной модели. Кроме того, интерпретируемая структура Smalltalk, его ориентация на однопроцессорные компьютеры, по мнению японцев, совершенно не укладывалась в концепцию машин пятого поколения.

В некоторых областях информатики Smalltalk все же нашел примене­ние, но через пять лет после его выхода был разработан язык C++, и про Smalltalk быстро забыли, настолько заманчивыми показались возмож­ности нового языка, позволяющего использовать наработки из своего предшественника, обычного С. Из языка Smalltalk были взяты базо­вые идеи объектно-ориентированного программирования: инкапсуля­ция, наследование и полиморфизм, уже проверенные на практике. Немного была ограничена модель переноса свойств объектов от нескольких родителей, имевшая в других языках название множе­ственного наследования. Правильность такого подхода подтвердилась сегодня, когда в языке Java (наиболее передовом, если выразить мнение ряда специалистов) множественное наследование отсутствует вообще. Кроме того, язык Java позаимствовал у своего собрата указатели, ра­бота с которыми больше не является «беспределом» и строго контроли­руется. Из-за того, что двадцать лет назад в программировании властво­вали «низкоуровневые» идеи, нацеленные на выжимание из кода максимальной производительности, язык Java не мог тогда «родиться от Си» в принципе.

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

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

Однако через некоторое время стали очевидны недостатки C++ и его ограничения. С ростом объема проекта обычное операторное (по сути — все то же низкоуровневое) программирование превращалось в тормоз и приводило к лавинообразному росту числа трудно обнаруживаемых ошибок в программах. Кроме того, с внедрением локальных и глобаль­ных сетей очень актуальной стала новая клиент-серверная идеология построения систем для обработки информации. Она требовала адекват­ных технологических решений, позволяющих быстро переносить про­граммы на разные платформы. В системах работы с базами данных эта проблема была решена достаточно быстро и эффективно. Но при пере­носе программ, написанных на языках программирования третьего поколения, основные проблемы оказались связаны с интерфейсом поль­зователя. Например, программу, написанную специально для Windows, без предварительного продумывания ее структуры и выделения машинно-независимых частей перенести в Unix было очень сложно.

И тут вспомнили о языке Smalltalk. Он поддерживался и развивался в первую очередь благодаря усилиям фирмы IBM, пусть и незаметно для большинства разработчиков. При этом он пользовался постоянным спросом, растущим в прямой зависимости от увеличения производитель­ности компьютеров. Сегодня язык Smalltalk опять выходит на лидиру­ющие позиции среди языков программирования. В будущем он навер­няка сможет оказать заметную конкуренцию языку C++ и его аналогам.

Язык Smalltalk выделяется двумя ключевыми особенностями, позво­ляющими ему претендовать на роль ведущего средства разработки. Во-первых, синтаксис языка базируется исключительно на понятии объекта и очень компактен. Даже само название языка в переводе на русский примерно означает «малоразговорчивый». В самом деле, в языке Smalltalk отсутствуют привычные отделенные по смыслу друг от друга понятия оператора, данных или процедуры. Абсолютно все, что входит в язык, является объектами, а сами объекты общаются друг с другом исключительно с помощью сообщений. Например, вычисле­ние выражения 1+1 вызывает посылку сообщения «+» (прибавить) с параметром 1 объекту I. Больше никаких управляющих структур, за исключением условного «оператора», который на самом деле тоже является методом класса Boolean, в языке нет, хотя их нетрудно смо­делировать.

При разработке языка Smalltalk одной из его целей было создание хоро­шего инструментария для моделирования процессов с большим коли­чеством независимых объектов, общающихся друг с другом с помощью сообщений. «Жизнь» каждого объекта протекает независимо от дру­гих объектов, и в то же время одновременно с ними. Для моделирова­ния подобных процессов в язык Smalltalk были встроены три класса для распараллеливания процессов и их синхронизации друг с другом. Но так как реализация языка Smalltalk-80 ориентировалась на одно­процессорные системы, диспетчеризацией псевдопараллельных про­цессов с помощью задания приоритетов и отслеживания тупиковых ситуаций занимается специальный класс. (На старых ЕС ЭВМ был такой термин «клинч», когда каждый из двух процессов бесконечно ждал освобождения ресурса, занятого «конкурентом».)

Современные разработчики ориентируются на версию Smalltalk-80, которая в силу прекрасной продуманности семантики языка уже 20 лет не нуждается в изменениях и стала общепризнанным стандартом. В него не входят описания интерфейсных классов, классов работы с графикой и платформно-зависимых элементов. Особенно важна независимость от платформы, которая позволяет, например, использовать в языке числа неограниченной длины. Для придания языку Smalltalk большей гибкости в нем имеется возможность использования чисел с различ­ными системами счисления в диапазоне от 2 до 36. (Программисты привыкли к десятичной, двоичной и шестнадцатеричной системам, а поклонники языка С —- еще и к восьмеричной.) Почему 36, в принципе, понятно: 26 букв английского алфавита и еще 10 цифр. Любимый при­мер поклонников Smalltalk, иллюстрирующий выразительные возмож­ности представления чисел, выглядит так: 36rSMALL.TALKe255.

Заявлено, что переменные в AJVSJ-стандарте языка не будут иметь типов вне зависимости от того, какие данные они хранят в любой момент исполнения программы. Это решение окончательное — разработчики стандарта заявили: «Хорошо это или плохо — тема отдельного разго­вора, но любой диалект Smalltalk с типизированными переменными можно назвать как угодно, но это будет уже не Smalltalk ». Создатели языка Smalltalk опираются на концепцию повторного использования объектов, поэтому они и отказались от привычного понятия типа, создав классы Integer, Boolean и другие для объектного представления данных. Таким образом, понятие полиморфизма реализовано в языке Smalltalk в наиболее точном соответствии с объектной идеологией.

Во-вторых, язык Smalltalk является полностью переносимым на уровне двоичных кодов. Дело в том, что этот язык является интерпретируе­мым. Программа на Smalltalk компилируется в так называемый байт-код, когда отдельная команда виртуального ассемблера занимает ровно один байт (8 бит). Эта идея, которую придумал и впервые реализовал Питер Дойч в одной из версий Лиспа, получила широкое распростра­нение. Можно вспомнить, например, Паскаль с компиляцией в извест­ный Р-код. Получаемый байт-код может исполняться интерпретатором на любой платформе, где реализована виртуальная Smalltalk-машина, которая содержит набор объектов (в терминологии языка), описываю­щих процессы компиляции и взаимодействия с пользователем. Ско­рость исполнения программ (интерпретации байт-кода) имеет естест­венные ограничения. Однако с учетом роста производительности ком­пьютеров для некритичных по времени задач быстрота и качество разработки проекта выходят на первый план.

Благодаря объектному подходу ко всем аспектам реализации языка Smalltalk, удалось создать не просто новый язык программирования. Появилась полностью переносимая среда, хорошее владение которой, если судить по зарубежным исследованиям, приближается по ценности к профессиональному владению C++. Сегодня языки третьего поколе­ния во многих случаях уже не «вытягивают» крупные проекты, даже при качественном продумывании структуры программы. Слишком много усилий тратится на написание и отладку кода для реализации мелких деталей разрабатываемой системы. На помощь вроде бы при­ходят CASE-системы, но они в большей степени ориентированы на работу с хранилищами данных. Для задач моделирования, оптимиза­ции, управления и т. п. оптимально использовать языки с другой идео­логией.

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

Из бесплатных версий наиболее солидно выглядит GNU-версия языка Smalltalk, полностью соответствующая неофициальному стандарту Smalltalk-80. Из коммерческих версий необходимо выделить комплект IBM VisualAge for Smalltalk. Фирма IBM многие годы поддерживала и совершенствовала эту систему, которая сегодня является безуслов­ным лидером на рынке. В чем этой компании не откажешь — это в про­фессионализме и умении заглядывать далеко в будущее (хотя она, похо­же, заглядывает в будущее подчас слишком далеко, упуская из виду текущие тенденции рынка). Последняя доступная к весне 2003 года версия VisualAge Smalltalk Enterprise V6.0.1 — это прекрасная кросс-платформная среда визуальной разработки, позволяющая создавать программы для множества операционных систем: Windows, OS/390, z/OS, HP-UX, Red Hat Linux, AIX. В ней имеется набор интерфейсных объектов, объектов для работы с базами данных и для интеграции в программу мультимедийной информации, а также обеспечена поддер­жка технологий Java и Weft-сервисов.

Сегодня языками, массово используемыми для создания коммерческих приложений, являются Бейсик, C++ и Паскаль. Недостатки их оче­видны и общеизвестны. Это отсутствие полноценной объектной идео­логии, излишне «низкоуровневый» код, трудность отладки, невысо­кая эффективность для ряда задач. Однако из-за огромных вложений в их «раскрутку», а также искусственно поддерживаемого спроса на программистов, владеющих этими языками (что связано с незнанием руководителями других технологических возможностей), погибнуть этим языкам, конечно же, не суждено.

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5224
Авторов
на СтудИзбе
428
Средний доход
с одного платного файла
Обучение Подробнее