рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Современных языков программирования

Современных языков программирования - раздел Информатика, СОВРЕМЕННАЯ ИНФОРМАТИКА   Все Языки Программирования Можно Сгруппировать По Некоторым П...

 

Все языки программирования можно сгруппировать по некоторым признакам в ряд подгрупп (с определенной степенью условности). На рис. 4.2 представлен один из вариантов такого разбиения.

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

 


Рис. 4.2. Классификация

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

 

 

Программирование в машинных кодах в настоящее время не используется программистами (за исключением некоторых узкоспециализированных приложений). Однако программирование на Ассемблере (Assembly System) практикуется достаточно широко, поскольку все системное программирование, программирование нестандартных периферийных устройств, программирование процессов реального времени и т.п. в той или иной мере связано с использованием Ассемблера. Язык Ассемблера – первый шаг по автоматизации программирования, избавлению программиста от мелочей двоичного кодирования. Использование символов, отражающих суть ма­шинной команды (например, LOAD – загрузить, ADD – сложить), вместо соответствую­щих им кодов команд, а также
запись программ без привязки к конкретным адресам ЭВМ значительно облегчают работу программиста. При этом часть работы возлагается на компьютер, который с помощью программы транслятор-ассемблер переводит текст программы на машинный язык и определяет его место в поле оперативной памяти. Дальнейшее совершенствование Асемблеров связано с появлением макроассемблеров (или макросов), позволяющих писать более компактные программы. Это объясняется тем, что в макроассемблерах часто повторяющиеся последовательности команд Ассемблера объединяются и им присваиваются новые символы. Транслятор с языка Ассемблера является необходимым атрибутом любого современного компьютера, так как программирование на этом языке позволяет в полной мере использовать ресурсы вычислительных систем. В то же время использование этого языка предполагает доскональное изучение технических средств и архитектурных особенностей программируемой машины.

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

Если во многих применениях сравнительно рано были созданы языки высокого уровня, каждый из которых стал мировым стандартом в своей области, то ни одному из языков реального времени высокого уровня не удалось стать таковым. В Великобритании необходимость в языке программирования задач в реальном масштабе времени привела к появлению языка Корал (сокращение от «язык программирования для реализации радиолокационных систем»), построенного на идеях Алгола. Корал – один из немногих языков данного типа, на который имеется стандартное определение.

В США использовался Фортран реального времени (разработка университета Purdue), во Франции – язык Прокол (также на основе Фортрана), в Германии – Пеарл. Программирование задач реального времени для микропроцессорных систем привело к появлению таких языков высокого уровня, как PL/M, PLZ, MPL, предназначенных для семейств микропроцессоров фирм Intel, Zilog и Motorola соответственно. У этих языков было много приверженцев и они получили высокую оценку пользователей. Особое место в списке языков реального времени занимает Форт: он не имеет аналогов в машинно-независимых языках и позволяет сочетать программирование на языках высокого и низкого уровней.

Машинно-ориентированные языки высокого уровня применялись и при системном программировании – разработке операционных систем и инструментов программной поддержки компьютерных систем. Так, фирма IBM для этих целей использовала языки PLS (диалект PL/1), DEC-BLISS (на базе ALGOL), Burroughs – Extended ALGOL. В настоящее время в качестве основного инструмента для создания операционных систем используется язык С.

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

К этой же категории можно отнести Паскаль, который вначале применялся как язык для обучения программированию, но благодаря появлению микросистем стал одним из наиболее популярных языков решения инженерных задач. В экономических приложениях своеобразным стандартом являлся Кобол (Common Business Oriented Language).

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

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

Языки подготовки сценариев. Первый такой язык – Sh (Shell – оболочка), изначально состоявший из набора команд, интерпретируемых как вызов системных программ, выполняющих служебные функции (например, управление файлами) и их простую фильтрацию. Затем на этой основе были добавлены переменные операторы потока управления, функции и т.п., в результате получили универсальный язык программирования, разработанный в Bell Lab., – AWK.

Разработанный Лари Уоллом язык Perl изначально составлял комбинацию Sh и АWК, затем получил значительное развитие и сейчас является достаточно мощным, выходящим за рамки сценариев, особенно в связи с развитием WWW, языком. Он очень удобен для программирования интерфейса CGI (Common Gatway Intertace – общий шлюзовой интерфейс).

Программирование в среде Windows. Создание графических оболочек связано с такими инструментальными средствами, как Turbo Vision, VB, VBA, VC++, Delphy, .NETVision.

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

платформенная независимость;

защита информации от несанкционированного доступа;

обеспечение высокого быстродействия.

Для программирования активных Web-серверов в наибольшей степени удовлетворяют перечисленным требованиям язык Java (C-), разработанный фирмой Sun, а также платформа .NET(DOT NET), включающая язык С# фирмы Microsoft.

Для разметки гипертекста, создания Web-сценариев (Web-дизайна) применяются: HTML(H(yper) T(ext) M(arkup) L(anguage)), XTML, Perl, Java Script, VB Script, используемые для программирования со стороны клиента, для программирования серверной части сценариев используется ASP (Active Server Payes).

Основные языки для работы с данными. Таким языком в рамках стандарта ANSI является SQL (Structured Query Language – язык структурированных запросов).

Среди узкоспециализированных языков, которых за последние 50 лет появилось великое множество, можно отметить APG, используемый для генерации деловых отчетов, АРТ, созданный для управления программируемыми устройствами, GPSS, разработанный для моделирования больших систем (включая большие информационные системы) и т.п.

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

Практически все языки научно-технического применения обеспечены средствами программирования графического вывода. Общим для всех языков являются средства программирования в среде Windows (Visual Basic, Delphy, Visual C т.п.), создание новых типов данных – объектно-ориентированное программирование.

К универсальным языкам на начальном этапе относили, прежде всего, PL/I (Programming Language I), CPL (Combined PL), APL, которые, хотя и используются, не получили широкого распространения.

Основным, всеми признанным де-факто, стандартом универсального языка стал разработанный в недрах Bell Laboratory крупнейшего американского концерна AT&T язык Си (С). Примечательно, что разработчики (отнюдь, не представляющие ведущие компьютерные фирмы) не ставили своей целью разработку универсального языка. Они создавали инструментальные средства для написания переносимой на различные компьютеры операционной системы UNIX (Кен Томпсон и Денис Ритчи). На первом этапе этот язык считался языком системного программирования. В 1980 г. Бьярн Страуструп разработал объектно-ориентированное расширение этого языка – Си ++.

В дальнейшем различными фирмами созданы средства программирования графических интерфейсов в рамках языка Си. Язык сетевого программирования Java также создан на основе языка Си.

В 1979 г. было объявлено о языке Ада, разработанном для министерства обороны США с его задачами реального времени. Однако до настоящего времени этот язык не вошел в практику широкого применения.

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

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

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

К таким языкам относятся функциональные языки (другое название – аппликативные). Типичным представителем этих языков является LISP (L(ist) I(nformation) S(ymbol) P(rocessing)) – язык обработки списков, разработанный Дж. Маккарти в 1961 г. для символьной обработки. Потребность в языках, работающих с символами, ощущалась в лингвистике, философии, математике. У психологов необходимость в таких средствах связана с моделированием человеческого мышления, у лингвистов – с обработкой текстов на естественном языке, у математиков – это язык доказательства теорем, дифференцирование, интегрирование и т.п. Кстати, такие математические пакеты, как Macsyma Reduce, Scratchpad, разработаны с помощью LISP.

К непроцедурным языкам относятся и языки логического программирования, которые являются декларативными. Разработка программы на этих языках заключается в представлении программы в виде символьной логики и использовании для получения результата процесса логического вывода (алгебра Буля – исчисление предиктов, см. гл. 1).

Логическое программирование является не процедурным, а декларативным. Это означает, что в них указывается лишь описание желаемого результата, а не детальная процедура его получения. Одним из представителей таких языков является разработанный на базе LISP язык PROLOG – PRO(gramming) in LOG(ic).

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

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

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

Сегодня в полной мере задачу повышения уровня языка решить не удается, поскольку конкретные приложения пользователей значительно шире возможностей, предоставленных стандартными средствами. Практически все непроцедурные языки имеют средства традиционного программирования. Так, пакеты прикладных программ, разработанные фирмой Microsoft, имеют в своем составе Visual Basic. В то же самое время в языки LISP и Prolog при их практическом применении включаются элементы традиционных (императивных) языков.

 

– Конец работы –

Эта тема принадлежит разделу:

СОВРЕМЕННАЯ ИНФОРМАТИКА

Московский инженерно физический институт... государственный университет...

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

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

СОВРЕМЕННАЯ ИНФОРМАТИКА
    Москва 2010 УДК 004(075) ББК 32.97я7 А19   Аверьянов Г.П., Дмитриева В.В. Аннотация Учебное

ОСНОВНЫЕ СОКРАЩЕНИЯ
  АКД – аппаратура канала данных АЛУ – арифметико-логическое устройство АСНИ – автоматизированные системы научных исследований АСУ – автоматизированная сист

Структура современных систем обработки данных
  За сравнительно небольшой период развития электронных вычислительных систем появилось довольно много технических средств обработки данных (СОД). На рис. 1.1 представлена пр

И краткая характеристика его составных частей
  Более чем за 50 лет развития современной вычислительной техники прогресс в аппаратной реализации компьютеров и их технических характеристиках превзошел все мыслимые прогнозы, и пока

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

И их разновидности
  Большое значение имеет концепция взаимосвязи отдельных частей компьютера, структура или (как это принято называть в информатике) архитектура вычислительной системы. Архитектура комп

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

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

Функциональные возможности, номенклатура
  Персональный компьютер (ПК) – небольшой компьютер, основой которого служит МП, т.е. микрокомпьютер. Однако не все микрокомпьютеры являются персональными компьютерами. Микроко

Периферийных устройств
  Архитектура ПК определятся системой шин, с помощью которых ЦП связан с ОП и периферийными устройствами. Современная архитектура ПК является результатом довольно длительного

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

О мобильных компьютерных устройствах
  Революционные изменения в компьютерных технологиях безусловно связаны с появлением 16 ти разрядных МП и наступлением эры персональных компьютеров «ПК». Продвижение этой технологии в

Эволюция распределенных вычислительных систем
  В начале ХIX в. передача электроэнергии и коллективное ее использование привели к технической революции во всех областях деятельности человеческого общества. В наше время р

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

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

Современное состояние и ближайшие перспективы
  Глобальные или всемирные сети (GAN – Global Area Network) предназначены для связи абонентов, расположенных в различных географических регионах, и включают в себя множество сетей раз

Технические средства, используемые ЛВС
  Локальные вычислительные сети (ЛВС) начали использоваться с середины 70-х годов в результате падения цен на электронные компоненты, расширения возможностей терминальных устройств, п

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

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

Обеспечения и краткая характеристика отдельных частей
  До 70-х годов изготовители ЭВМ, как правило, продавали лишь изделие одного вида – аппаратуру (Hard ware). Операционные системы (ОС), вспомогательные служебные программы, пакеты прик

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

Сетевые операционные системы
  Большое разнообразие и различие функциональных возможностей ОС больших и малых ЭВМ 70-х – 80-х годов объясняется различием в уровне технических средств этих машин. Значительное увел

Общая структура программного обеспечения
  Все компоненты программного обеспечения, описанные в гл. 5, присутствуют и в структуре ПО ПК. Однако система программного обеспечения этого вида ЭВМ имеет ряд специфических особенно

Краткая характеристика ОС, применяемых в ПК
  До последнего времени для ПК IBM-клона применяются три типа локальных ОС: однопользовательская однозадачная DOS; однопользовательские многозадачные OS/2, Windows 9

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

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

Программное обеспечение компьютерной графики.
  Программные средства работы с компьютерной графикой называют графическими редакторами (graphics editor). Существуют два типа графических редакторов: 1) редакторы для

Проблемы информационной безопасности
  Проблема информационной безопасности возникла достаточно давно и имеет глубокие исторические корни. До сравнительно недавнего времени методы защиты информации были в исключительной

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

О некоторых понятиях компьютерной безопасности
  Термины «информационная безопасность» (information security) и «безопасность сети» (network security) в широком смысле относятся к секретности, т.е. гарантии того, что информация и

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

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

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

Бизнес в Интернете
  В конце 1999 г. сразу два автомобильных гиганта Ford и General Motors объявили о своем намерении перевести большую часть своих коммерческих операций во Всемирную паутину и объединит

Правовое обеспечение информационной безопасности
  К правовым мерам обеспечения информационной безопасности относится: разработка норм, устанавливающих ответственность за компьютерные преступления; защита авторских прав программисто

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

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

Спутниковая система связи
23 апреля 1965 г. был запущен на высокую эллиптическую орбиту спутник связи «Молния 1», который ознаменовал становление в нашей стране спутниковой радиосвязи. Почти одновременно в США был запущен н

Системы подвижной радиосвязи
  В настоящее время доминирующее положение на рынке подвижной радиосвязи занимают: профессиональные (частные) системы подвижной радиосвязи (PMR – Professional Mobil Radio, PA

Беспроводное подключение узлов в локальных сетях.
Беспроводная (wireless) связь в локальных сетях осуществляется в инфракрасном и радиочастотном диапазоне электромагнитных волн. Для организации беспроводного подключения узлов к сети требуется два

СПИСОК ТЕРМИНОВ И ОПРЕДЕЛЕНИЙ
  Алгоритм шифрования – различные способы преобразования текста. Аналоговые данные – физическая величина, которая может изменяться в непрерывном диапазоне значе

ТЕЛЕКОММУНИКАЦИОННЫЕ СИСТЕМЫ
  Учебное пособие   Редактор     Подписано в печать 15.10.2007. Формат 60х84 1/16 Уч.-изд.л. 20,0. Печ.л. 20,0. Ти

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги