История развития программирования – Программирование и достижения компьютерной техники

Будущее

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

R, MATLAB и Julia

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

Как думаете, что будет дальше, и на какой из существующих языков поставите вы?

Автор статьи: Илья Бубнов

Доисторическая эра

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

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

С другой, первый язык программирования в современном представлении зародился лишь во время Второй мировой войны на релейной машине Z4 немецкого изобретателя Конрада Цузе. Его название Планкалкюль (нем. Plankalkül — исчисление планов), и это был полноценный язык высокого уровня, поддерживающий условные операторы, арифметические операции, массивы, циклы, исключения и утверждения.

Доподлинно известно, что в конце 40-х годов Планкалкюль позволял ЭВМ решать шахматные задачи.Изобретение Цузе могло бы изменить ход истории, однако итоги войны и усилия американцев по популяризации собственного машинного языка отложили полноценное явление миру Планкалкюля вплоть до 1972 года.

История развития программирования - Программирование и достижения компьютерной техники
Z4 в Немецком музее, Мюнхен

История развития программирования

С глубокой древности известны попытки создать устройства, ус-коряющие и облегчающие процесс вычислений. Еще древние греки и римляне применяли приспособление, подобное счетам, — абак. Такие устройства были известны и в странах Древнего Востока. В XVM в. немецкие ученые В. Шиккард (1623), Г.Лейбниц (1673) и французский ученый Б. Паскаль (1642) создали механические вы-числительные устройства — предшественники всем известного арифмометра. Вычислительные машины совершенствовались в те-чение нескольких веков. Но при этом не применялось понятие «программа и программирование».

Только в начале XIX в. (1830) английский ученый, профессор математики Кэмбриджского университета Чарльз Бэббидж, анализи-руя результаты обработки переписи населения во Франции, теорети-чески исследовал процесс выполнения вычислений и обосновал ос-новы архитектуры вычислительной машины. Работая над проектом аналитической машины — «Машины для исчисления разностей», Ч. Бэббидж предсказал многие идеи и принципы организации и работы современных ЭВМ, в частности принцип программного управления и запоминаемой программы. Общая увлеченность наукой дала ученому и Аде Лавлейс (1815–1852) долгие годы плодотворного со-трудничества. В 1843 г. она перевела статью Менабреа по лекциям Ч. Бэббиджа, где в виде подробных комментариев (по объему они превосходили основной текст) сформулировала главные принципы программирования аналитической машины. Она разработала первую программу (1843) для машины Бэббиджа, убедила его в необходимо-сти использования в изобретении двоичной системы счисления вме-сто десятичной, разработала принципы программирования, предусматривающие повторение одной и той же последовательности команд при определенных условиях. Именно она предложила термины «рабочая ячейка» и «цикл». А. Лавлейс составила первые программы для решения системы двух уравнений и вычисления чисел Бернулли по довольно сложному алгоритму и предположила, что со временем аналитическая машина будет сочинять музыкальные произведения, рисовать картины и использоваться в практической и научной дея-тельности. Время подтвердило ее правоту и точность прогнозов. Своими работами А. Лавлейс заложила теоретические основы про-граммирования и по праву считается первым в мире программистом и основоположником научного программирования.

В 1854 г. английский математик Джордж Буль опубликовал кни-гу «Законы мышления», в которой развил алгебру высказываний –Булеву алгебру. На ее основе в начале 80-х гг. XIX в. построена тео-рия релейно-контактных схем и конструирования сложных дискрет-ных автоматов. Алгебра логики оказала многогранное влияние на развитие вычислительной техники, являясь инструментом разработ-ки и анализа сложных схем, инструментом оптимизации большого числа логических элементов, из многих тысяч которых состоит со-временная ЭВМ.

Идеи Ч. Бэббиджа реализовал американский ученый Г. Холлерит, который с помощью построенной счетно-аналитической маши-ны и перфокарт за три года обработал результаты переписи населе-ния в США по состоянию на 1890 г. В машине впервые было ис-пользовано электричество. В 1896 г. Холлеритом была основана фирма по выпуску вычислительных перфорационных машин и пер-фокарт.

В 1936 г. английский математик А. Тьюринг ввел понятие ма-шины Тьюринга, как формального уточнения интуитивного понятия алгоритма. Ученый показал, что любой алгоритм в некотором смысле может быть реализован на машине Тьюринга, а следователь-но, доказывал возможность построения универсальной ЭВМ. И та, и другая машины аналогично могут быть снабжены исходными данными решаемой задачи и программой ее решения. Машину Тьюринга можно считать как бы идеализированной моделью универ-сальной ЭВМ.

В 40-х гг. XX в. механическая элементная база вычислительных машин стала заменяться электрическими и электронными устройствами. Первые электромеханические машины были созданы в Германии К. Цузе (Ц-3, 1941 г.) и в США под руководством профессора Гарвардского университета Г. Айкена (МАРК-1, 1944 г.). Первая электронная машина создана в США группой инженеров под руководством доктора Пенсильванского университета Дж. Мочли и аспиранта Дж. Экксрта (ЭНИАК — электронный числовой интегратор и калькулятор, 1946 г.). В 1949 г. в Англии была построена EDSAC — первая машина, обладающая автоматическим программным управ-лением, внутренним запоминающим устройством и другими необхо-димыми компонентами современных ЭВМ.

Логические схемы вычислительных машин были разработаны в конце 1940-х гг. Дж. фон Нейманом, Г. Гольдстайном и А. В. Берксом. Особый вклад в эту работу внес американский математик Джон фон Нейман, принимавший участие в создании ЭНИАК. Он предложил идею хранения команд управления и данных в машин-ной памяти и сформулировал основные принципы построения современных ЭВМ. ЭВМ с хранимой программой оказались более быстродействующими и гибкими, чем ранее созданные.

В 1951 г. в США было налажено первое серийное производство электронных машин УНИВАК (универсальная автоматическая вы-числительная машина). В это же время фирма IBM начала серий-ный выпуск машины IBM/701.

В СССР первыми авторами ЭВМ, изобретенной в декабре 1948 г., являются И. С. Брук и Б. И. Рамеев. А первая советская ЭВМ с сохраняющейся программой создана в 1951 г. под руково-дством С. А Лебедева (МЭСМ — малая электронная счетная маши-на). В 1953 г. в Советском Союзе начался серийный выпуск машин, первыми их которых были БЭСМ-1, «Стрела».

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

До конца 1950-х гг. ЭВМ основным элементом конструкции были электронные лампы (1-е поколение). В этот период развитие идеологии и техники программирования шло за счет достижений американских ученых Дж. фон Неймана, сформулировавшего ос-новные принципы построения ЭВМ, и Дж. Бэкуса, под руково-дством которого в 1954 г. был создан Fortran (Formula Translation) — первый язык программирования высокого уровня, используемый до настоящего времени в разных модификациях. Так, в 1965 г. в Дартмутском колледже Д. Кэмэни и Т. Куртцем была разработана упро-щенная версия Фортрана — Basic. В 1966 г. комиссия при Амери-канской ассоциации стандартов (ASA) разработала два стандарта языка: Фортран и Базисный Фортран. Используются также даль-нейшие модификации языка (например 1970, 1990 гг.).

Достижения в области электроники и микроэлектроники по зволили заменить элементную базу ЭВМ на более совершенную. В конце 1950-х гг. громоздкие электронные лампы заменяют полу-проводниками (миниатюрными транзисторами). Появляются ЭВМ II поколения; затем примерно через 10 лет — ЭВМ III поколения на интегральных схемах; еще через 10 лет — ЭВМ IV поколения на больших интегральных схемах (БИС). В Японии в 1990-х гг. реали-зованы проекты ЭВМ V поколения, в которых использованы дос-тижения в области искусственного интеллекта и биоэлектроники. Если объем оперативного запоминающего устройства (ОЗУ) одной из лучших отечественных машин 1960-х гг. М-20, созданной под руководством С.А.Лебедева в 1958 г., имел 4096 слов (8 Кбайт) и быстродействие 20 тыс. операций в секунду, то современные персо-нальные компьютеры характеризуются ОЗУ в десятки Мбайт и бы-стродействием в сотни миллионов операций в секунду, что позво-ляет решать сложнейшие задачи.

В 1953 г. А.А.Ляпуновым был предложен операторный метод программирования, который заключался в автоматизации программирования, а алгоритм решения задачи представлялся в виде совокупности операторов, образующих логическую схему задачи. Схемы позволяли расчленить громоздкий процесс составления программы, части которой составлялись по формальным правилам, а затем объединялись в целое. Для проверки идей операторного метода в СССР в 1954 г. была разработана первая программирующая про-грамма ПП-1, а в 1955 г. более совершенная — ПП-2. В 1956 г. разработана ПП БЭСМ, в 1957 г. – ППСВ, в 1958 г. — для машины «Стрела».

В США в 1954 г. стал применяться алгебраический подход, совпадающий, по существу, с операторным методом. В 1956 г. корпора-цией IBM разработана универсальная ПП Фортран для автоматического программирования на ЭВМ IBM/704.

В этот период по мере накопления опыта и теоретического осмысления совершенствовались языки программирования. В 1958–1960 гг. в Европе был создан ALGOL, который породил целую серию алголоподобных языков: Algol W, (1967), Algol 68, Pascal (Н. Вирт, 1970 г.), С (Д. Ритчи и Б. Керниган, 1972 г.), Ada (под ру-ководством Ж. Ишбиа, 1979 г.), C (1983). В 1961-1962 гг. Дж. Маккарти в Массачусетс ком технологическом институте был создан язык функционального программирования Lisp, открывший в программировании одно из альтернативных направлений, предло-женных Дж. фон Нейманом.

Рефераты:  Дружба начинается с улыбки | Классный час на тему: | Образовательная социальная сеть

На начало 1970-х гг. существовало более 700 языков высокого уровня и около 300 трансляторов для автоматизации программирования.

Усложнение структуры ЭВМ привело (в 1953 г. для машин И-го поколения) к созданию операционных систем (ОС) — специальных управляющих программ для организации и решения задач на ЭВМ. Например, мониторная система МТИ, созданная в Массачусетском технологическом институте, обеспечивала пакетную обработку, т. е. непрерывное, последовательное прохождение через ЭВМ многих групп (пакетов) заданий и пользование библиотекой служебных программ, хранимой в машине. Это позволило совместить операции по запуску с выполнением программ.

Для ПЭВМ к настоящему времени разработаны ОС: MS DOS, Windows, ОС/2, МасОС, Unix, Linux и др. Широкое распростране-ние получили ОС MS DOS и Windows, имеющие развитый интер-фейс и широкий набор приложений, позволяющих последователь-ное выполнение заданий из пакета, обработку различной информа-ции во многих сферах человеческой деятельности.

В 1965 г. итальянцы Бом и Джакопини предложили использо-вать в качестве базовых алгоритмических элементов следование, ветвление и цикл. Почти в то же время к аналогичным выводам пришел голландский ученый Э. Дийкстра, заложивший основы структурного программирования. В 1970-х гг. эта методология оформилась, и корпорация IBM сообщила о применении в разра-ботке программного обеспечения «Усовершенствованных методов программирования», одним из компонентов которых являлась тех-нология нисходящего структурного программирования (структур-ного программирования), основу которого составляет следующее:

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

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

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

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

Развитие получило модульное программирование, основа которого заключается в следующем:

* функциональная декомпозиция (разбиение) задачи на самостоятельные подзадачи — модули, связанные только входны-ми и выходными данными;

* модуль представляет собой «черный ящик», позволяющий разрабатывать части программ одного проекта на разных язы-ках программирования, а затем с помощью компоновочных средств объединять их в единый загрузочный модуль;

* должно быть ясное понимание назначения всех модулей зада-чи и их оптимального сочетания;

* с помощью комментариев должно описываться назначение всех переменных модуля.

В период 1970–1980-х гг. развитие теоретических исследований оформило программирование как самостоятельную научную дисциплину, занимающуюся методами разработки программного обеспечения (ПО).

В истории развития промышленного программирования боль-шую роль сыграл программист и бизнесмен Билл Гейтс (Gates William Henry, p. в 1955 г.). Его история очень поучительна для на-чинающих программистов. В 1972 г. Билл Гейтс и его школьный то-варищ Пол Аллен основали компанию по анализу уличного движе-ния «Трэф-О-Дейта» и использовали для обработки данных компь-ютеры с микропроцессором 8008 — первым из знаменитого ряда микропроцессоров компании «Intel». Будучи студентом Гарвардско-го университета, в 1975 г. он совместно с Алленом написал для ком-пьютера Altair (фирмы M1TS) интерпретатор — программу-перево-дчик с языка программирования на язык машинных кодов. Они за-ключили с владельцем фирмы соглашение, по которому их программы распространялись вместе с компьютерами. Товарищи основали компанию «Microsoft», в которой Б. Гейтсу принадлежало 60 % акций, П. Аллену — 40 %. В 1976 г. Гейтс ввел в практику про-дажу лицензий на свои программные продукты непосредственно производителям компьютеров, что позволило «встраивать» их (ОС и трансляторы с языков программирования) в компьютеры. Это было большое достижение в области маркетинга, принесшее фирме ог-ромные доходы. Фирма привлекала таких новых заказчиков, как фирмы «Apple», «Commodor», «Tendi». В 1980 г. фирма IBM предло-жила «Microsoft», в которой тогда работало около двух десятков че-ловек, создать языки программирования для ее нового персональ-ного компьютера, в дальнейшем известным как IBM PC. В 1981 г. «Microsoft» приобрела у разработчика Т. Патерсона дисковую ОС (DOS), и в августе этого года IBM PC поставлялась вместе с ОС MS DOS. Успех был настолько велик, что, кроме значительных доходов, привел к тому, что и архитектура Intel, и компьютеры IBM, и про-граммы «Microsoft» фактически стали отраслевыми стандартами. В 1988 г. «Microsoft» создала свою ОС Windows с мощным графическим интерфейсом. К 1995 г. ОС, выпускаемые фирмой, использо-вали 85 % персональных компьютеров. ОС Windows совершенству-ется год от года, обладая уже средствами доступа в глобальную сеть Internet. Вместе с фирмой NBC был создан круглосуточный кабель-ный информационный канал новостей. Совместно с фирмой «Эн-карта» создана мультимедиа-энциклопедия на CD-ROM «Книжная полка», содержащая электронные версии семи больших справочни-ков, электронную энциклопедию кино — «Синемания». В 1995 г. в фирме «Microsoft» работало 18 тыс. человек, годовой выпуск достиг 200 программных продуктов, а доходы составили миллиарды долла-ров. В 1998 г. Б. Гейтс стал самым богатым человеком в мире, а в конце 1999 г. — объявил о своем решении уйти с поста главы ком-пании и заняться программированием. Сегодня Билл Гейтс — одна из самых популярных фигур компьютерного мира. Журнал «People» писал: «Гейтс в сфере программирования значит столько же, сколь-ко Эдисон в отношении к электрической лампочке: отчасти инноватор, отчасти предприниматель, отчасти торговец, но неизменно гений».

Профессиональное программирование вышло на уровень техно-логии. Методы разработки ПО синтезируют:

* методы инженерных расчетов для оценки затрат и выбора ре-шений;

* математические методы для составления алгоритмов;

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

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

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

Идея использования программных объектов исследовалась в течение ряда лет разными учеными. Одним из первых языков этого типа считают Simula-67. А в 1972 г. появился язык Smoltalk, разработанный Аланом Кеем, утвердивший статус ООП.

На современном этапе развиваются инструментальные среды и системы визуального программирования для создания программ на языках высокого уровня: (Turbo Pascal, Delphi, Visual Basic, C Builder и др.).

Развитие основных принципов объектно-ориентированного программирования получило с появлением компонентного программирования (КП). КП — динамический процесс без жестких правил, выполняющийся в основном для распределенной разработки (программирования) распределенных систем. Суть КП в том, что независимые проектировщики, программисты разрабатывают независимые компоненты (отдельные части) единой системы, распределенные по множеству узлов большой сети. Эти части могут принадлежать раз-ным собственникам и управляться организационно независимыми администраторами.

В КП компонент рассматривается как хранилище (в виде DLL-или ЕХЕ файлов) для одного или нескольких классов. Классы рас-пространяются в бинарном виде, а не в виде исходного кода. Пре-доставление доступа к методам класса осуществляется через строго определенные интерфейсы по протоколу. Это снимает проблему несовместимости компиляторов, обеспечивая без перекомпиляции смену версий классов в разных приложениях. Интерфейсы задают содержание сервиса и являются посредником между клиентом и сервером.

Фирма Microsoft создала технологии для распределенной разра-ботки распределенных систем, такие как COM (Component Object Model), COM , .NET. Разработаны и другие технологии: CORBA (консорциума OMG), JAVA (компании Sun Microsystem) и др.

Идея переложить на ЭВМ функции составителей алгоритмов и программистов дала новые возможности развитию сферы искусст-венного интеллекта, которая должна была создавать методы автома-тического решения интеллектуальных задач. Формализация знаний, которые есть у профессионалов в разных областях, накопление их в базах знаний, реализованных на ЭВМ, стали основанием для созда-ния экспертных систем. На основе баз знаний работают и ЭВМ V по-коления, и интеллектуальные роботы, и экспертные системы. Эти системы могут не только найти решение той или иной задачи, но и объяснить, как оно получено. Появилась возможность манипулировать знаниями, иметь знания о знаниях — метазнания. Знания, хра-няшиеся в системе, стали объектом ее собственных исследований.

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

В конце 1980-х гг. в Японии и США появились проекты ЭВМ V поколения, реализованные в конце 1990-х гг. Прогресс в програм-мировании связан с прогрессом в архитектуре вычислительных сис-тем, отходом от фон-неймановской концепции, с достижениями в области искусственного интеллекта. Революционные изменения в элементной базе ЭВМ связываются с исследованиями по биоэлектронике.

На современном этапе программирование включает комплекс вопросов, связанных с написанием спецификаций (условий задач), проектированием, кодированием, тестированием и функционирова-нием программ для ЭВМ. Современное ПО для ЭВМ имеет слож-ную структуру и включает, как правило, ОС, трансляторы с различ-ных языков, текстовые программы контроля и диагностики, набор обслуживающих программ. Например, японские ученые для проек-тирования систем ПО разрабатывают идею «кольцевой структуры» шести уровней: 1-й (внутренний) — программы для аппаратуры; 2-й — ядро ОС; 3-й — программы сопряжения; 4-й — часть ОС, ориентированная на пользователя; 5-й — системы программирования; 6-й (внешний) — программы пользователя.

Рефераты:  Реферат: Основные виды искусств -

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

Широкое применение структурных и объектно-ориентирован-ных методов программирования с использованием графических моделей объединялось отсутствием инструментальных средств. Это по-родило потребность в программно-технологических средствах спе-циального класса — CASE (Computer Aided Software Engineering), реализующих технологию создания и сопровождения ПО различных систем. Предпосылки для появления CASE-технологий возникли к концу 1980-х гг. Первоначально термин «CASE» применялся только к вопросам автоматизации разработки ПО, теперь программная инженерия имеет более широкое значение для разработки систем в целом. В CASE-технологии входит разработка и внедрение языков высокого уровня, методов структурного и модульного программирования, языков проектирования и средств их поддержки, формальных и неформальных языков описания системных требований.

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

В начале этого столетия текстовые процессоры стали более совершенными. Наряду с более простыми (например Professional Write и др.) появились такие мощные, как MS WinWord (см. рис. 21), WordPerfect WordStar 2000 и др. Из отечественных широкое распро-странение получил текстовый процессор Лексикон.

С начала 1980-х гг. для подготовки и обработки числовой ин-формации стали использоваться табличные процессоры. В 1979 г. Д. Брикклин предложил первую программу для работы с электрон-ными таблицами VisiCalc. В 1981 г. была разработана система SuperCalc фирмы «Computer Associates», в 1982 г. — Multiplan фир-мы «Microsoft», далее — пакет для IBM PC Lotusl-2-3 фирмы «Lotus Development», русифицированные пакеты АБАК, ДРАКОН и др. В 1985 г. появился табличный процессор Excel фирмы «Microsoft» первоначально для персонального компьютера Macintosh, а затем для совместимых с IBM PC. Этот процессор разрабатывался паралг лельно с ОС Windows, его версии вобрали в себя все черты графиче-ского интерфейса, вплоть до версий Excel 5.0 как приложения Windows 3.1, Excel 7.0 как приложения Windows 95 и т. д. В послед-ние годы создано достаточно много систем подготовки табличных документов, т. е. электронных таблиц, табличных процессоров (например, Corel Quattro 6.0 фирмы «Corel Co», Lotus 5.0 фирмы «Lotus Development Co», Office Proftessional for Windows фирмы «Microsoft» и ДР-)- Но наиболее широко используют электронные табли-цы Excel.

Разработано большое количество стандартных реляционных систем управления базами данных — СУБД (например, MS Access, paradox и др.), на основе которых строят реляционные базы данных в различных предметных областях.

Для многих организаций (особенно управленческих) разработа-ны так называемые офисные пакеты, в которых на основе единой ОС функционируют приложения, включающие в себя системы для работы с различными видами информации. Например, созданы па-кеты приложений к ОС Windows (MS Office, WordPerfect Office фир-мы «Corel», StarOffice фирмы «SunMicrosystems» и др.), которые включают программные средства для выполнения функций обработ-ки всех видов инфрмации. Например, MS Office включает совершен-ствующиеся год от года (в зависимости от последней версии ОС Windows) средства обработки текста (MS Word), графики (Photo Draw) и презентаций (PowerPoint), таблиц (Excel), баз данных (Access), электронной почты (Outlook), работы во Всемирной паути-не (FrontPage), создания звуковых клипов (MS Sound Recorder).

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

За рубежом в 1960-х гг. появились первые вычислительные сети, с которых началась техническая и технологическая революция, т. к. была предпринята попытка объединить технологию сбора, хране-ния, передачи и обработки информации на ЭВМ с техникой связи. В Европе в те годы были созданы международные сети EIN и Евро-нет, затем появились национальные сети. В 1972 г. в Вене была соз-дана сеть МИПСА, к которой присоединились в 1979 г. 17 стран Европы, СССР, США, Канада и Япония. В 1980-х гг. в нашей стра-не была создана система телеобработки статистической информа-ции, обслуживающая государственные и республиканские органы статистики. С 1980-х гг. развивается программирование для локаль-ных вычислительных сетей (ЛВС).

ЛВС — это коммуникационная система, которая поддерживает в пределах одного здания или некоторой ограниченной территории один или несколько высокоскоростных каналов передачи информа-ции, предоставляемых абонентским системам для кратковременного пользования. К 1990 г. эксплуатировалось свыше 0,5 млн серверов и 5 млн рабочих станций, работающих под управлением сетевых ОС (например NetWare компании «Novell»).

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

Сети позволили эффективно использовать аппаратные средства, программные средства и такие многопользовательские системы, как электронная почта, информационные системы на основе баз дан-ных, телеконференции и др. Особой популярностью пользуется сис-тема WWW (World Wide Web) — Всемирная паутина, т. е. всемирная распределенная база гипертекстовых документов. Пользователи, ис-пользуя для программирования язык гипертекстовой разметки HTML, создают свои сайты любой тематики и легко могут получать многообразную информацию, общаться с миллионами пользовате-лей компьютеров. В будущем планируется массовое использование так называемых информационных роботов (Knowbot) — новых сис-тем поиска и обработки информации в сети, в основе которых име-ются уже элементы экспертных систем, позволяющих анализиро-вать искомую информацию и готовить ее для выдачи в форме пре-зентаций.

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

Кайнозой

В 1960-х годах компания Bell Labs всерьёз взялась за разработку операционной системы Unix для своих миникомпьютеров. Первые ОС были написаны на ассемблере, но эксперимент оказался неудачным.

Потом в алфавитном порядке Кеном Томпсоном и Деннисом Ритчи был специально разработан интерпретируемый язык B (Би), но и в этот раз результат оставлял желать лучшего.

Всё изменилось с третьей попыткой в 1972 году и языком C, который оказался настолько успешным, что и спустя 40 лет занимает важное место в разработке ПО. Например, по данным IEEE Spectrum С в 2021 году стоял на втором месте: «The 2021 Top Ten Programming Languages».

В другом полушарии на останках языка Algol-68 Никлаус Вирт разработал Pascal. Цель он преследовал ту же самую, что и BASIC — простота в обучении и наглядность выполняемых операций.

Несмотря на внешнюю незамысловатость, Pascal оказался крайне эффективным языком не только в деле обучения, но и в серьезной разработке. Он остаётся крайне востребованным как в школах, так и в мире больших приложений: Total Commander, WinRAR, ранние версии Skype и Nero Burning ROM были написаны на Pascal.

В конце 1970-х были сформированы принципы ООП, на основе которых был доработан язык C, получив сперва название «С with classes», а потом более привычное взгляду C . Отчасти из-за совершенства творения, отчасти из-за славы одного из первопроходцев, C долгое время оставался самым востребованным языком.

Через четыре года после появления первой версии C Ларри Уолл разработал Perl — «практичный язык для извлечения данных и составления отчётов» (Practical Extraction and Report Language). Изначально язык обрёл популярность благодаря функциям, заложенным в названии, однако позднее расширил свои возможности и аудиторию.

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

Компиляторы и предубеждения

Ассемблер позволил создать простые превращения. Например, перевод 01 в ADD. Макроассемблер расширил эту идею и подарил программистам возможность сворачивать несколько инструкций в одну. К примеру, если в программе вы постоянно добавляли значение в ячейку памяти и проверяли, не переполнена ли она, всё это можно было записать в макрос INCRT и использовать его, меняя лишь переменные. По сути, макроассемблеры превратились в первые языки высокого уровня.

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

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

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

Тем не менее компилятор стал единственным выходом из ситуации, но здесь проявилась другая трудность – арифметические выражения. Их исполнение не совпадает с тем, как машина читает код. Из школьного курса мы знаем порядок вычислений в выражении «2 3*5», но машина читает код в одном направлении, так что ответ будет неверным.

Рефераты:  Реферат: История развития экстремальных видов спорта. Скачать бесплатно и без регистрации

Первый сборщик

Решение лежало на поверхности: необходимо перевести цифровые обозначения операций в буквы. То есть вместо «01 10 15» использовать «ADD 10 15». Это требовало дополнительного перевода символов в машинную команду, но, учитывая проблему, жертва была минимальна.

Решение оказалось настолько очевидным, что доподлинно неизвестно, кто первым изобрёл язык Ассемблера. Вероятнее всего, он появился одновременно сразу в нескольких местах. За название и популяризацию ответственными принято считать авторов книги «The preparation of programs for a digital computer» Уилкса, Уилера и Гилла.

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

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

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

Это стало катализатором языкового прорыва.

Рассмотрение языков: машинного, высокого уровня, алгоритмических, объектно-ориентированных и на платформе .net.

Нажав на кнопку “Скачать архив”, вы скачаете нужный вам файл совершенно бесплатно.
Перед скачиванием данного файла вспомните о тех хороших рефератах, контрольных, курсовых, дипломных работах, статьях и других документах, которые лежат невостребованными в вашем компьютере. Это ваш труд, он должен участвовать в развитии общества и приносить пользу людям. Найдите эти работы и отправьте в базу знаний.
Мы и все студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будем вам очень благодарны.

Чтобы скачать архив с документом, в поле, расположенное ниже, впишите пятизначное число и нажмите кнопку “Скачать архив”

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

    курсовая работа [2,6 M], добавлен 17.11.2021

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

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

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

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

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

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

  • Языки программирования низкого и высокого уровней и среды реализации. Особенности процедурных, логических, объектно-ориентированных языков. Состав системы программирования: трансляторы, библиотеки и отладчик программ, компоновщик, средства редактирования.

    презентация [11,9 K], добавлен 23.10.2021

  • Современность

    В статье об истории эволюции языков просто обязан упоминаться

    Python

    не только преподавателями GeekBrains, но и, судя по широте использования, многими иностранными университетами и крупными зарубежными компаниями. Его структура и философия направлены на то, чтобы ускорить разработку готового продукта программистом. С точки зрения развития, это куда более совершенный язык, нежели все существовавшие до 1991 года.

    Впрочем, теми же самыми характеристиками можно описать и Ruby, увидевший свет в 1995 году, с поправкой на то, что у Юкихиро Мацумото было 2 года, чтобы подумать, чем его язык может стать лучше современников.

    Развитие интернета в конце XX века требовало более качественных языков обработки текста и данных. Так на свет появились HTML, PHP, CSS и JavaScript, без которых сегодня очень трудно представить веб-разработку.

    Вместе с этим появился и Java — объектно-ориентированный язык, использующий виртуальную машину JVM. Это обеспечивает языку практически полную независимость от машины, на которой производится запуск. Совокупность этих факторов и популярность смартфонов c ОС Android позволяет Java возглавлять список самых популярных языков по версии Tiobe, а нам — рекомендовать его начинающим разработчикам в качестве первого или основного.

    Если взглянуть на этот же самый рейтинг, в конце второго десятка можно отыскать современные языки программирования. Например, Swift — продукт компании Apple, популярный не только за счет своих качеств, но и благодаря громкому имени производителя.

    Суть проблемы

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

    Ещё одной проблемой было то, что за разработку языков отвечали люди, непосредственно связанные с созданием компьютеров – в первую очередь инженеры и лишь вынужденно программисты. Потому они и представляли язык в виде последовательности номеров операций и ячеек памяти. Грубо говоря, это выглядело так:

    01 x y – добавление содержимого ячейки памяти y к ячейке x;

    02 x y – аналогичная процедура с вычитанием.

    В итоге код программы превращался в бесконечную череду цифр:

    01 10 15 02 11 29 01 10 11

    Сегодня такой код вам покажется ужасом, но в начале 1950-х был нормой.

    История развития программирования - Программирование и достижения компьютерной техники
    Компьютер 1940-х годов

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

    Эпоха новой формации

    Найти алгоритм анализа стека удалось Джону Бэкусу, создателю Фортрана.  Он начал работать над ним в 1954 году и ему потребовалось  почти 5 лет, чтобы доказать право языков высокого уровня на существование. Полное название Фортрана – The IBM Formula Translating System, или FORmula TRANslator.

    Несмотря на 60-летний возраст, он остаётся одним из самых популярных языков программирования и невероятно востребован в Data Science. За это время мы видели множество версий: Fortran 1, II, 66, 77, 90, 95, 2008, а в следующем году выйдет ещё одна (планировался Fortran 2021, но из-за задержек название может смениться на 2021). Именно в Фортране впервые были одновременно реализованы многие атрибуты языка высокого уровня, среди которых:

    • арифметические и логические выражения;
    • цикл DO (ранняя форма цикла FOR);
    • условный оператор IF;
    • подпрограммы;
    • массивы.

    Ещё одним важным наследием Фортрана, о котором даже не догадываются современные программисты, является использование ограничений для переменных для целых чисел. Все они должны были начинаться с одного из 6 символов I, J, K, L, M, N (происходит от I-Nteger). Именно отсюда взялась привычка для перечислений брать переменные i, j и т.д.

    История развития программирования - Программирование и достижения компьютерной техники
    IBM 704 – машина, на которой был создан Fortran

    При этом Фортран оставался языком, приближенным к машинам. Например, там существовало такое:

    if (выражение) doneg, dozero, dopos
    

    Причиной была архитектура компьютера IBM, которой требовалась команда для использования нужного регистра: отрицательного, нулевого или положительного. Близость к машинам проявлялась и в известной команде GOTO (позднее она была унаследована Basic), означавший прямой переход к той или иной команде.

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

    Языки для каждого

    Fortran 1 был научным языком, в его основе лежали операции с комплексными числами и с плавающей запятой. Он даже не умел обрабатывать текст, для этого приходилось преобразовывать его в специальные коды. Поэтому Фортран оказался непригоден для бизнеса, где был специально создан язык Cobol.

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

    Move Income To Total Subtract Expenses
    

    Cobol стал олицетворением максимального удаления от прежнего машинно-арифметического мышления к общечеловеческому. И главное – теперь можно было работать с текстом и записями.

    Следующим фундаментальным языком стал Algol (ALGOrithmic Language), предназначенный для научных отчётов и публикаций. В нём впервые появились естественные для нас вещи:

    • отличия между присваиванием := и логическим равенством  =;
    • использование цикла for с тремя аргументами: начальное значение,  предел, шаг;
    • блочная структура программ, заключённая между begin и end, это исключило необходимость применения GOTO.

    Именно из Алгол произошли C, C , C #, Java и многие другие популярные сегодня языки.

    Четвёртым китом 1950-х стал Лисп (LISt Processing language), разработанный специально для обслуживания искусственного интеллекта.  Главной его особенность стала  работа не с императивными данными, а с функциями. Для этого Джону Маккарти пришлось предусмотреть множество механизмов для нормальной работы: динамическую типизацию, автоматическое распределение памяти, сборщик мусора.

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

    Освоить востребованную профессию в Data Science можно всего за полтора года на курсах GeekBrains. После учёбы вы сможете работать по специальностям Data Scientist, Data Analyst, Machine Learning, Engineer Computer Vision-специалист или NLP-специалист.

    Языки для народа


    Но по-настоящему массовым программирование стало с

    появлением языка BASIC

    в 1964 году. Преподаватели Дартмутского Колледжа Джон Кемени и Томас Курц разработали его для обучения студентов основам программирования ЭВМ.

    BASIC был алгоритмическим языком, для его создателей было важно не быстродействие и эффективность, а легкое понимание. Тем не менее BASIC быстро обрёл популярность в реализациях от Microsoft и Apple. Но не все были им довольны. По мнению противников языка простота и бесструктурность ранних версий BASIC поощряли применение порочных и опасных методик разработки.

    История развития программирования - Программирование и достижения компьютерной техники
    «Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они умственно изувечены без надежды на восстановление».
    Эдсгер Дейкстра.

    Оцените статью
    Реферат Зона
    Добавить комментарий