СЕРВИС-ЦЕНТР КРОКУС
+7 (959) 144-54-54


Среда обитания программиста.

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

 

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

 

Как все началось.

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

 

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

 

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

 

Признанные ветераны.

Один из первых платфомо-независимых языков — FORTRAN — был разработан фирмой IBM в 1956г. Название языка составлено из первых двух слогов английских слов FORmula TRANslation. Язык был предназначен для инженерных расчетов и решения научных задач. Впоследствии FORTRAN претерпел эволюцию, пополнился средствами обработки символов, списков и т.п.

 

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

 

Ровесником FORTRAN является языком COBOL (Common Business-Oriented Language) — один из самых массово используемых языков в 60-х годах ХХ века. Этот язик был разработан для экономических задач и отличался развитыми средствами работы с файлами и формой записи, приближенной к английскому языку. На COBOL были написаны десятки тысяч приложений для мэйнфреймов, многие из которых используются до сих пор.

 

В конце 50-х был разработан также язык программирования высокого уровня Algol (Algorithmic Language). Особенностями языка является блочная структура описания переменных, определение способа передачи параметров, использование формальных средств описания языка. Впоследствии Algol был дополнен развитой системой типов, автоматическим приведением типов, средствами описания параллельной обработки данных и синхронизации. Algol использовался как язык программирования и язык публикации алгоритмов. Многие из современных языков программирования, базируются на идеях заложенных Algol.

 

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

 

Следующий этап развития

В 1964 году в мире ИТ произошло поистине знаменательное событие — корпорация IBM выпустила ЭВМ серии IBM/360. Для этих машин той же IBM был разработан язык программирования PL/1 (Programming Language 1). PL/1 сочетал в себе черты языков COBOL, FORTRAN и Algol и также он являлся языком высокого уровня. В 60-х годах на  PL/1 была написана операционная система Multics. И хотя эта ОС сегодня совершенно забыта, именно она послужила толчком и отправной точкой для создания ОС Unix.

 

С историей создания Unix тесно связано появление еще двух языков. Первая редакция Unix была написана на ассемблере. Вторая версия включала в себя интерпретатор языка В. Язык и интерпретирующая среда были разработаны одним из создателей Unix К. Томпсоном под влиянием существовавшего языка BCPL. Основными особенностями BCPL были отсутствие типов данных, отличных от машинного слова, развитой набор конструкций для структурного программирования, переносимость программ между ЭВМ с различной архитектурой.

 

Однако язык В, как и BCPL, был бестиповый — в нем поддерживался только один тип данных, соответствующий машинному слову. Другие типы данных эмулировались библиотекой функций. В 1971 году другой разработчик Unix Деннис Ритчи приступает к проектированию нового языка. За основу он взял В, добавил в язык систему типов, средства инициализации переменных, битовые поля, регистровые и глобальные переменные. Так появился универсальный язык программирования — С, который на долгие годы стал основным инструментом сотен тысяч программистов.

 

До середины 60-х годов языки программирования все больше усложнялись. Наиболее громоздким, пожалуй, на то время был PL/1. В противовес ему сотрудники Дартмутского колледжа Д. Кемени и Т. Курц разработали достаточно простой и в то же время полноценный язык программирования BASIC (Beginner’s All-purpose Symbolic Instruction Code). В отличие от языков FORTRAN, PL/1, Algol и других, которые транслируются компилятором в объектный код, а затем программой компоновки переводятся в исполняемый файл, программы, написанные на BASIC, интерпретируются. Интерпретатор по мере чтения программы последовательно превращает ее код в команды машинного языка. Интерпретатор работает намного медленнее, чем компилятор, однако позволяет без труда отслеживать ошибки в исходном коде.

 

В 70-х профессором из Цюриха Н. Виртом был разработан Pascal, Algol – подобный язык программирования, который ввел в широкое употребление понятие типа данных и принципы структурного процедурного программирования. Суть его состоит в создании четкой и определенной структуры программы еще до ее завершения, а общий текст кода разбивается на процедуры, которые вызываются при необходимости в процессе выполнения программы.

 

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

 

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

 

Вышеописанные требования привели к возникновению объектно-ориентированного программирования (ООП).

 

 

Его суть состоит в обращении с данными и процедурами, которые обрабатывают эти данные, как с единым объектом. В ООП программа задается описанием совокупности взаимосвязанных объектов. Объектно-ориентированное программирование состоит из трех составляющих: инкапсуляция (свойство скрытости объектов, используемых во внешних конструкциях), наследования (возможность объявить новый тип данных, который будет наследовать существующий тип и при этом обладать какими-то дополнительными свойствами) и полиморфизме (возможность определять код, исполняемый при вызове одноименных функций для разных объектов, во время исполнения в зависимости от типа объекта). Хотя не без исключения из правил: например, в объектах Common LISP инкапсуляции нет.

 

Одним из первых ООП языков был SmallTalk, появившийся в середине 60-х годов. Он являлся языком интерпретируемого типа: программа в системе SmallTalk переводилась в интерпретируемое внутреннее представление специальным интерпретатором. Это позволяет программисту иметь доступ к программе во время ее интерпретации, что очень удобно при разработке и отладке. Но, как известно, интерпретация программы уменьшает ее эффективность, так как сопряжена с дополнительными накладными расходами.

 

В середине 80-х Б. Страуструп взял язык С и расширил его, обогатив его необходимыми для ООП средствами. Так возник язык С++ — один из наиболее популярных современных языков программирования.

 

Написано однажды — работает везде

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

 

В начале 90-х, команда разработчиков из Sun приступила к созданию нового объектно-ориентированного языка, который первоначально был назван Oak. Однако, компания не могла найти ему подходящее применение. После появления в 1993г. Браузера Mosaic и начала бурного развития интернета было предложено использовать Oak в создании Интернет приложений. В 1995 году Sun Microsystems объявила о новом языке, переименовав его в Java. Поскольку продукт был ориентирован на перспективные интернет технологии, компания Netscape приняла решение поддерживать Java-продукты.

 

Java является платформо-независимым решением. Исходный код программы, написанной на Java, компилируется в байт-код, который затем исполняется виртуальной машиной Java (JVM — Java Virtual Machine). JVM специфицируется набором команд байт-кода, набором регистров, стеком, сборщиком «мусора» и пространством хранения методов. Большинство современных Web-браузеров содержат виртуальную машину Java, чтобы приложения, написанные на Java, могли выполняться на любой платформе.

 

 

Александр Григорьев ЦСО "Крокус"


Наши новости:

    23 февраля и 8 Марта - 20.02.2024

  • Поздравляем защитников и их милых дам с 23 февраля и 8 Марта. Желаем Вам мира, здоровья, любви и достатка! Пусть Ваша жизнь будет наполнена радостью и счастьем! Покупайте у нас подарки своим любимым и близким со скидкой до 1000 рублей.
  • Обновленный торговый зал - 02.06.2023

  • У нас расширение ассортимента и увеличение ветрин в торговом зале, чтобы покупателям было комфортно и удобно. В просторном помещении можно спокойно и внимательно выбрать устройство, рассмотреть его, а при необходимости получить от консультанта квалифицированную помощь. Появилась возможность выставить ещё больше разнообразной продукции. Приходите, «Крокус» ждет Вас!
  • КОПИЦЕНТР "КРОКУС" - 31.05.2023

  • КОПИЦЕНТР расширил ассортимент канцелярских товаров и возможность оказания широкого спектра услуг: Ксерокопирование и сканирование; Цветная и черно-белая печать документов, фотографий, чертежей и карт любых форматов, с различных носителей; Набор текстов; Создание сувенирной продукции; Ламинирование и переплет; Изготовление любой полиграфической продукции. ЗАКАЗ ОФОРМЛЯЕТСЯ практически В ТОТ ЖЕ ДЕНЬ. Мы рады видеть Вас в нашем КОПИЦЕНТРЕ!
  • КРАСНОЛУЧСКАЯ ГОРОДСКАЯ ТОРГОВАЯ ПЛОЩАДКА Online - 29.07.2020

  • Делайте покупки на 06432.su не выходя из дома! Тут дешевле, чем в розницу! Покупку привозят на дом, день в день и совершенно БЕСПЛАТНО!
  • ОНЛАЙН-ЗАЯВКА - 24.04.2020

  • ПРИНИМАЕМ ОНЛАЙН ЗАЯВКИ, Через Viber, WhatsApp, Telegram: 050-044-41-44 или электронную почту: krokus.servis@gmail.ru , НА ИЗГОТОВЛЕНИЕ: ВИЗИТОК; ПЕЧАТЬ ФОТОГРАФИЙ; ШИРОКОФОРМАТНУЮ ПЕЧАТЬ А0; НАБОР И ПЕЧАТЬ ДОКУМЕНТОВ; БОЛЬШОЙ ОБЪЕМ КСЕРОКОПИЙ.   Расчет после выполнения работ! Осуществляем видеоотчет выполненных работ! На все СКИДКИ!
  • РЕМОНТ КОМПЬЮТЕРНОЙ ТЕХНИКИ с выездом за техникой на дом - 22.04.2020

  • РЕМОНТ КОМПЬЮТЕРНОЙ ТЕХНИКИ стал проще! У Вас сломался компьютер, ноутбук или принтер? Вам достаточно только позвонить нам и мы — ПРИЕДЕМ, ЗАБЕРЕМ в ремонт, ОТРЕМОНТИРУЕМ и ВЕРНЕМ ОБРАТНО из ремонта на дом. Оплата на месте после доставки из ремонта.
  • Online-ВИДЕО-КОНСУЛЬТАЦИИ - 22.04.2020

  • Позвоните нам через: Viber, WhatsApp, Telegram, Skype. И мы - расскажем, покажем, в живую протестируем любой товар!
  • Доставка от 1000 руб БЕСПЛАТНО - 22.04.2020

  • Доставим любую мелочь! Доставка от 1000 рублей - БЕСПЛАТНО! НАДЕЖНО, БЫСТРО, ЕЖЕДНЕВНО!
  • ONLINE-SHOPPING НОВОЙ И КОМИССИОННОЙ КОМПЬЮТЕРНОЙ ТЕХНИКИ! Доставка БЕСПЛАТНО! - 07.04.2020

  • ВНИМАНИЕ! ТЕПЕРЬ ПОКУПАТЬ НАШ ТОВАР СТАЛО ЕЩЕ ПРОЩЕ! Сделать это можно не выходя из дома - через соцсети "ВКонтакте" или "Одноклассники" (одним кликом QR кода), а также через Онлайн магазин ЦСО Крокус: http://shop.cso-krokus.com.ua. Оплата - при доставке товара на дом.
  • УЧЕБНАЯ КАРТА - 12.03.2020

  • Теперь обучение стало ещё доступнее!   Обладатель УЧЕБНОЙ КАРТЫ будет иметь скидки на КОМПЬЮТЕРНЫЕ КУРСЫ. Карту можно получить БЕСПЛАТНО при покупке компьютерной техники в нашем торговом зале! Мы заботимся о том, чтобы делать покупки в нашем магазине было выгодно для Вас!

Copyright © Сервис-Центр Крокус, 2010-2024
Карта сайта
Городской:    (06432)  34 777
Мобильный:  (050) 0 444 1 44

Онлайн консультация
Учебный центр
Торговый зал
Технический центр
show
123