Языки программирования для компьютерных сетей

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

Perl

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

Perl - язык, приспособленный для обработки произвольных текстовых файлов, извлечения из них необходимой информации и выдачи сообщений. Perl также удобен для написания различных системных программ. Этот язык прост в использовании, эффективен, но про него трудно сказать, что он элегантен и компактен. Синтаксис выражений Perl близок к синтаксису Си. Рекурсия может быть произвольной глубины. Хотя Perl приспособлен для сканирования текстовых файлов, он может обрабатывать так же двоичные данные. Perl позволяет использовать регулярные выражения, создавать объекты, вставлять в программу на Си или Си++ куски кода на Perl, а также позволяет осуществлять доступ к базам данных, в том числе Oracle.

С изобретением World Wide Web, Perl оказался прекрасным средством для взаимодействия с web-серверами через Common Gateway Interface (CGI) - общий интерфейс взаимодействия. Команды Perl могут легко получить данные из формы HTML или другого источника и выполнить с ними какое-нибудь действие.

Язык PHP (1995-1997гг) обладает средствами доступа к БД и используется создателями динамических сайтов во всем мире.

Язык Tcl/Tk (конец 80-х годов) состоит из мощных команд, предназначенных для работы с абстрактными нетипизированными объектами и позволяет создавать программы с графическим интерфейсом.

Язык VRML (1994г) создан для организации виртуальных трехмерных интерфейсов в Интернете.

Язык XML. С 1996г идет работа над созданием универсального языка структуры документов. Может стать заменой языка HTML.

Аааааааааааааааааааааааааааааааааа жанасы

Экскурс в историю

Особенности языка Ада

Качество, надежность и стандартизация

Средства разработки

Некоторые итоги

Заключение

Основное назначение языка программирования Ада - разработка больших программных систем реального времени для встроенных компьютерных систем. Это, конечно, не исключает его использования при решении задач вычислительного характера, параллельной обработки, системного программирования и т.д. Более того, язык Ада часто рассматривают как язык общего назначения. Основное требование к программному обеспечению для встроенных компьютеров - это надежность. Именно поэтому в язык Ада введен целый ряд средств, направленных на разработку больших, сверхбольших и одновременно надежных программных комплексов. При крупномасштабном промышленном программировании с неизбежностью возникает вопрос об окружении языка, представляющем собой набор взаимосвязанных инструментов, позволяющих получить гарантированные характеристики качества всего программного проекта. Если рассматривать язык программирования Ада вместе с его окружением, то можно говорить о "программировании в большом". При этом в качестве объектов, которыми манипулирует программист, выступают программы, модули, абстрактные типы данных и тому подобные объекты, а в качестве действий над ними - операции композиции, управления и контроля, направленные на согласованное использование объектов, определение актуальности версий, необходимости перекомпиляции последовательности модулей и т.д.

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

1.Производительность труда программистов растет очень медленно и существенно отстает от производительности аппаратуры (за последние 25 лет производительность аппаратуры возросла в несколько миллионов раз, в то время как производительность труда программистов - в 15-50 раз).

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

3.Стоимость ПО остается очень высокой, и пока не наблюдается тенденция к ее снижению.

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

Экскурс в историю

Осознание сложившегося положения привело в середине 70-х годов к разработке по инициативе министерства обороны США языка программирования, который впоследствии получил название Ада в честь Августы Ады Байрон, графини Лавлейс, дочери английского поэта лорда Байрона. Она была сотрудницей Чарльза Беббиджа, изобретателя аналитической машины, и написала для этой машины программу вычисления чисел Бернули - Августа Ада по праву считается первым в мире программистом.

Итак, в начале 70-х годов МО США обратило внимание на тенденцию существенного удорожания программного обеспечения вычислительных систем военного назначения. В частности, в 1973 году стоимость ПО уже составила 46% от общих затрат министерства на вычислительную технику. Несмотря на это во многих случаях качество программ не удовлетворяло предъявляемым к ним требований. Анализ показал, что применявшиеся средства разработки имели серьезные недостатки, препятствовавшие снижению трудоемкости и повышению качества ПО. К ним в первую очередь относились:

· использование многочисленных языков программирования, их диалектов и версий;

· использование плохо подходящих языков программирования для решения задач в конкретной прикладной области;

· использование языков программирования, не поддерживающих прогрессивные методологии программирования;

· отсутствие систем поддержки разработок для применявшихся языков программирования.

К этому времени стали очевидны преимущества языков высокого уровня, а компиляторы начали обеспечивать высокое качество объектных программ. Это позволило использовать языки высокого уровня для разработки систем, работающих в реальном масштабе времени. Однако язык высокого уровня, удовлетворяющий требованиям встроенных систем, отсутствовал. В связи с этим в 1974 году во всех трех родах войск: армии, авиации и флоте США начались разработки такого языка для своих внутренних целей. В 1975 году было осознано, что экономически выгоднее иметь один общий язык, который был бы пригоден для программирования всех встроенных вычислительных систем МО США. В этом же году была организована Рабочая группа по языку высокого уровня и одновременно прекратилось финансирование всех других исследований в данной области.

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

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

· язык должен обеспечивать проектирование, разработку и сопровождение надежного ПО большого и сверхбольшого объема, которое эксплуатируется длительное время и подвержено постоянным изменениям;

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

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

· язык должен быть спроектирован так, чтобы служить хорошей основой для создания вокруг него инструментального окружения;

· язык должен быть примером эффективного практического применения последних достижений в области программирования;

· текст программы на этом языке должен быть удобочитаемым, легкость же его написания не относится к первостепенным факторам.

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

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

· язык должен обеспечивать разработку ПО, устойчивого к исключительным ситуациям и ошибкам, иначе говоря, появление исключений не должно сопровождаться аварийным завершением программы;

· в языке должны быть предусмотрены средства взаимодействия с таймером для обеспечения реакции программы на внешние условия в течение жестко определенного интервала времени;

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

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

Язык разрабатывался в рамках международного конкурса и из семнадцати поступивших проектов для продолжения работ были отобраны четыре, а после обработки отзывов около четырехсот рецензентов из 80 организаций осталось два. Одновременно специалисты из Рабочей группы готовили требования к средствам поддержки разработок. В мае 1979 года из двух оставшихся проектов был выбран язык, получивший название Ада, разработанный группой из десяти человек под руководством Жана Ишбиа. Еще около полугода проводились испытания языка для выявления и устранения мелких недостатков. Вообще же, в работе над языком Ада в том или ином виде участвовали практически все лучшие специалисты мира в области языков программирования.

В конце 1980 года вместо Рабочей группы при МО США был создан комитет AJPO (Ada Joint Program Office) для координации всех работ, связанных с языком. В течение последующих лет этим комитетом был проведен комплекс мероприятий, направленных на недопущение появления подмножеств и расширений языка Ада. Справочное руководство по языку Ада стало сначала национальным стандартом США (ANSI/MIL-STD-1815A-1983), а затем и международным стандартом (ISO 8652:1987). Наконец, комитетом AJPO были подготовлены тесты и организована аттестация компиляторов языка Ада.

Особенности языка Ада

Естественным представляется отметить принципиальные отличия языка Ада от всех других языков программирования:

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

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

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

· он является сегодня единственным действительно стандартизованным языком программирования, для которого, к тому же, имеется стандарт на средства поддержки разработок.

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

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

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

Язык программирования Ада обязателен к применению для разработки программ военного назначения в США и является единым языком программирования в странах-членах НАТО. В университетах и высших учебных заведениях он широко используется при преподавании информатики. В Западной Европе и Японии Ада широко используется для создания невоенного программного обеспечения. Трудно предположить, чтобы в ближайшие годы появился другой язык, обладающий столь же широкими возможностями и обеспеченный такой же мощной финансовой и организационной поддержкой: суммарные международные вклады в язык Ада и его инфраструктуру уже составляют десятки млрд. долл. Высказываются даже такие прогнозы: примерно до 2005 года продлится "эра языка программирования Ада", вслед за чем наступит "эра промышленного синтеза программ".

Наши рекомендации