Операционная система Windows


 

Меню

Реклама
Похожие статьи:

Популярные записи



  • "Эволюция языков програмування"


    Развитие вычислительной техники сопровождается созданием новых и совершенствованием существующих словно программирование Мп—засобив общения программистов из ЭВМ. Под МП понимают правила представления данных и записи алгоритмов их обработки, которые автоматически выполняются ЭВМ. В более абстрактном виде МП является средством создания программных моделей объектов и явлений внешнего мира. На сегодня уже созданы десятки разных МП как примитивных, так и близких к языку человека. Чтобы разобраться в разнообразии МП, нужно знать их классификацию, а также историю создания, эволюцию и тенденции развития. Эта статья и посвященная рассмотрению отмеченных вопросов. Движущие силы эволюции МП, Чтобы понимать тенденции развития МП, нужно знать движущие силы их эволюции. Для выяснения этого вопроса будем рассматривать МП из разных точек зрения. Во-первых, МП является инструментом программиста для создания программ. Для создания качественных программ нужны удобные МП. Поэтому одной из движущих сил эволюции МП является стремлением разработчиков к созданию более совершенных программ. Во-вторых, процесс разрабатывания программы можно сравнивать с промышленным производством, в котором определяющими факторами является производительность труда коллектива программистов, себестоимость и качество программной продукции. Создаются разнообразные технологии разрабатывания программ структурное, модульное, объектно-ориентированное программирование но др., что должны поддерживаться МП. Поэтому второй движущей силой эволюции МП является стремление к повышению эффективности процесса производства программной продукции. В-третьих, программы можно рассматривать как аналог электронных приборов обработки информации, в которых вместо радиодеталей и микросхем используют конструкции МП элементная база программы. Как и электронные приборы, программы могут быть самыми простыми уровня детекторного приемщика и очень сложными уровня автоматической космической станции, при этом уровень инструмента должен отвечать сложности изделия. Кроме того, человеку удобнее описывать объект, который моделируется, употребляя термины предметной отрасли, а не языком цифр. Поэтому третьей движущей силой, которая ведет к созданию новых, специализированных, ориентированных на проблемную отрасль, мощных МП, есть увеличение разнообразия и повышение сложности задач, которые развязываются с помощью ЭВМ. В-четвертых, совершенствование самих ЭВМ приводит к необходимости создания языков, которые максимально реализуют новые возможности ЭВМ. В-пятых, программы являются интеллектуальным продуктом, который нужно накапливать и преумножать. Но программы, как и технические изделия, имеют свойство морального старения, одной из причин которого есть их зависимость от типа ЭВМ и операционной среды. С моральным старением программ борются путем их модернизации и выпуска новых версий, однако в условиях частого изменения типов ЭВМ и операционных сред разработчики будут только тем и заниматься, что модернизировать старые программы. Язык программирования должен обеспечивать длительный жизненный цикл программы. Стремление к этому является пятой движущей силой развития МП. История развития Мпвидомо, что первым программистом была жинка—леди Ада Лавлейс, дочь лорда Байрона. Она разрабатывала программы для одного из первых механических компьютеров, созданного в начале прошлого века английским ученым Чарльзом Беббиджом. Однако программирование в современном понимании началось с момента создания первой электронной вычислительной машины. Но невзирая на это, имя этой выдающейся жинки—ada—присвоено одной из найпотужниших современных МП, который является базовой для Министерства обороны США. Первые ЭВМ, созданные человеком, имели небольшой набор команд и встроенных типов данных, но позволяли выполнять программы на машинном языке. Машинный язык Мм—едина язык, который понимает ЭВМ. Она реализуется аппаратно: каждую команду выполняет определено электронное устройство. Программа на ММ являет собой последовательность команд и данных, заданных в цифровом виде. Например, команда вида 1А12 или 0001101000010010 означает операцию добавления 1а содержанию регистров 1 и 2. Машинным языком данные представляются числами и символами. Операции являются элементарными и из них строится вся программа. Введение программы в цифровом виде выполнялось непосредственно в память из пульту ЭВМ или из примитивных устройств введения. Естественно, что процесс программирования был очень трудоемким, разобраться в программе даже автору было достаточно сложно, а эффект от приложения ЭВМ был незначительным. Этот этап в развитии МП показал, что программирование является сложной проблемой, которая трудно поддается автоматизации, а именно программное обеспечение определяет эффективность приложения ЭВМ. Поэтому на всех следующих этапах усилия направлялись на совершенствование интерфейса между программистом и Еом—мови программирования. Стремление программистов оперировать не цифрами, а символами, привело к созданию мнемонического языка программирования, которые называют ассемблером, мнемокодом, автокодом. Этот язык имеет определенный синтаксис записи программ, в которой в частности цифровой код операции заменен мнемоническим кодом. Например, команда добавления записывается в виде AR 1,2 и означает добавление Addition типа регистр-регистр Register для регистров 1 и 2. Теперь программа имеет более удобную для чтения форму, но ее не понимает ЭВМ. Поэтому нужно было еще создать специальную программу-транслятор, которая превращает программу из языка ассемблера на Мм Эта проблема требовала, в свою очередь, глубоких научных исследований и разрабатывания разнообразных теорий, например, теории формальных языков, которые легли в основу создания трансляторов. Практически любой класс ЭВМ имеет свой язык ассемблера. Теперь язык ассемблера используется для создания системных программ, которые используют специфические аппаратные возможности этого класса ЭВМ. Следующий этап характеризуется созданием языков высокого уровня МВР. Эти языки являются универсальными дают возможность создавать любые прикладные программы и алгоритмически полными, имеют более широкий спектр типов данных и операций, поддерживают технологии программирования. Этими языками создается множество разнообразных прикладных программ. Принципиальными отличиями МВР от языков низкого уровня е:використання переменных;можливисть записи сложных выражений;можливисть расширение набора типов данных за счет конструирования новых типов из базовых;можливисть расширение набора операций за счет подключения библиотек подпрограмм;низька зависимость от типа ЭВМ. С осложнением МП модернизируются и трансляторы для них. Теперь в набор инструментов программиста, кроме транслятора, входит текстовый редактор для введения текста программ, наладочный для устранения ошибок, библиотекарь для создания библиотек программных модулей и много других служебных программ. Все это вместе называется системой программирования. Наиболее яркими представителями МВР является FORTRAN, Pl/1, Pascal, C, Basic, Ada. Может возникнуть вопрос: почему создано столько разнообразных языков одного класса? Почему нельзя создать один язык, который отвечал бы всем требованиям? Ответ может быть таким, как и на вопрос о разнообразных языках народов мира: так вышло. Каждый из разработчиков МВР стремился создать наилучшую и найуниверсальнишу язык, который давал бы возможность быстро получать самые эффективные, надежные и безошибочные программы. Однако в процессе этого поиска выяснилось, что результат зависит не от самого языка, а от технологии ее использования. Поэтому последующее развитие языков стало определяться новыми технологиями программирования. В то же время с развитием универсальных МВР стали развиваться проблемно ориентировочные МП, что решали экономические задачи COBOL, задачи реального времени Modula-2, Ada, символьной обработки Snobol, моделирования GPSS, Simula, Smalltalk, численно аналитические задачи Аналитик но др. Эти специализированные языки давали возможность адекватнее описывать объекты и явления реального мира, приближая языки программирования к языку специалиста в проблемной отрасли. Особенно следует отметить язык Аналитик, которая была разработана Киевским институтом кибернетики для отечественной ЭВМ "Мир-2". Кроме обычных средств МВР, этот язык использовал общую математическую символику, выполнял дифференцирование, интегрирование и упрощение выражений. Другим направлением развития МП является создание языков сверхвысокого уровня МНВР. Языком высокого уровня программист задает процедуру алгоритм получения результата на основе известных выходных данных, потому они называются процедурными МП. На МНВР программист задает отношение между объектами в программе, например, систему линейных уравнений, и определяет, что нужно найти, но не указывает как получить результат. Такие языки называют также непроцедурными, поскольку сама процедура поиска решения встроена в язык в ее интерпретатор. Они используются, например, для развязывания задач искусственного интеллекта Lisp, Prolog и дают возможность моделировать умственную деятельность человека в процессе поиска решений. К непроцедурным языкам можно отнести и языки запросов систем управления базами данных QBE, SQL. Классификация Мпвиходячи из вышеупомянутого, МП можно классифицировать за такими ознаками:1. За степенью ориентации на специфические возможности ЭВМ МП разделяются на:машинно-залежни;машинно-незалежни. К машинно-зависимым МП относятся машинные языки, ассемблеры и автокоды, которые используются в системном программировании. Программа на машинно-зависимой МП может выполняться лишь на ЭВМ данного типа. Программа на машинно-независимой МП после трансляции на машинный язык становится машинно-зависимой. Этот признак МП определяет мобильность получаемых программ возможность перенесения на ЭВМ другого типу. 2. За степенью детализации алгоритма получения результата МП разделяются на:мови низкого уровня;мови высокого уровня;мови сверхвысокого уровня. Уровень МП определяется на основе сложности элементов языки, из которых строится программа. Самым низким уровнем является машинный язык, а наивысшим, по-видимому, уровень естественного языка человека, которым формулируется задача типа "Дано:... Нужно:... ". К языкам низкого уровня принадлежат машинные языки, ассемблеры и автокоды. К языкам высокого уровня принадлежат языки, которые имеют типы данных например, массивы и программные конструкции например, циклы, которые непосредственно не реализуются машинным языком. Вообще, одному оператору языка высокого уровня отвечает определенная программа машинным языком. Традиционно к языкам высокого уровня относят языки класса FORTRAN, Pl/1, Pascal, C, Basic, Ada. К языкам сверхвысокого уровня относят языки, которые имеют наиболее абстрактные механизмы описания задачи и встроены средства ее развязывания. Эти языки дают возможность сосредоточиться на самой задаче, а не на деталях ее развязывания. К таким языкам принадлежат языки класса Lisp, Prolog. 3. За степенью ориентации на развязывание задач определенного класса МП разделяются на:проблемно-ориентовани;универсальни. Проблемно ориентированные МП содержат специализированные средства описания и развязывания задач определенного класса. Универсальные же МП не содержат таких средств, позволяют решать любые задачи, но большими зусилями. 4. За возможностью дополнения новыми типами данных и операциями МП разделяются на таки:що расширяются;що нерасширяющиеся. МП, что позволяют расширять состав типов данных и операций, фактически содержат механизм адаптации языка для развязывания определенных задач. Они являются замкнутыми МП. 5. За возможностью управления реальными объектами и процессами МП разделяются на:мови систем реального времени;мови систем условного времени. Языки систем реального времени обеспечивают создание систем управления реальными объектами, в которых время является важным фактором. Одним из таких языков есть язык Ada, который используется в системах военного назначения США. 6. За средством получения результата МП разделяются на:процедурни;непроцедурни. Процедурные МП нуждаются в задання определенного алгоритма получения результата, а непроцедурные имеют встроенный механизм поиска решения. 7. По типу задач, которые развязываются, МП разделяются на:мови системного программирования;мови прикладного программирования. Как правило, языки системного программирования являются языками низкого уровня и обеспечивают самое полное использование аппаратных возможностей ЭВМ. Для развязывания прикладных задач используются языки высших уровней. 8. Непроцедурные языки по типу встроенной процедуры поиска решений разделяются на:реляцийни;функциональни;логични. Тип встроенной процедуры поиска решений определяет парадигму вычислений и структуру программы. Тенденции развития Мпмови системного программирования, на которых создаются операционные системы, трансляторы и другие системные программы, развиваются в направлении повышения их уровня и независимости от ЭВМ. В наше время почти 90% системного программного обеспечения создается не языком ассемблера, а языком C. Например, операционная система Unix практически полностью написана языком C. Этот язык дает возможность получать программы, которые за своей эффективностью не уступают программам, которые написаны языком ассемблера. Правда, увеличивается объем программ, зато эффективность их создания значительно более высока. Машинная независимость достигается использованием стандарта языка, который поддерживается всеми разработчиками трансляторов, а также использованием так называемых кросс-систем, для эквивалентного превращения программ из одного языка низкого уровня на другую. Другим направлением является повышение уровня самого машинного языка. Например, известны Lisp-машини, в которых машинным языком является язык Lisp реализованная аппаратно. Другим примером является ЭВМ 5-и генерации с машинным языком искусственного интеллекта Prolog. МВР развиваются в направлении поддержки технологий программирования, обеспечения низкоуровневых операций уровня ассемблера, обеспечения новых информационных технологий, НИТ и независимость от среды реализации. Следует отметить, что за своими возможностями МВР постепенно сближаются и программистам становится все сложнее определять преимущества того или другого языка. В последнее время широкое распространение приобрела технология объектно-ориентированного программирования ООП: практически все современные МВР поддерживают ООП. И все современные программные системы построены на ее принципах. Сегодня каждый студент, который программирует, знает, что такое инкапсуляция сокрытия деталей реализации объекта, наследования, построение новых объектов из существующих и полиморфизм обозначения одним именем разных элементов программы, которые избираются динамически. Для обозначения факта поддержки ООП к названию языка добавляют слово Object например, Objectpascal или другие например, C++. Windows, сети ЭВМ, серверы, базы данных и Internet, как основа НИТ, больше всего влияют на современных МП. Разработчики МП теперь обязанные включать в языки средства поддержки НИТ, чтобы привлечь программистов на свою сторону. Для поддержки Windows создаются системы визуального программирования с дополнительным названием Visual, например, Visual C++, Visual Basic принципиально отличается от простого Basic и др. Для работы с БД, сетями и Internet, в МП включаются специальные внутренние или внешние средства. Стремление к созданию программ, которые не зависят от типа ЭВМ и операционной системы, привело к созданию языка Java. Основное задание языка Java—забезпечити выполнения программ, которые распространяются через Web-сторинки Internet, на любой рабочей станции. Кроме того, Java поддерживает все средства НИТ и вскоре, по-видимому, станет самой популярной МП. Популярность языков искусственного интеллекта за последние 5 лет, к сожалению, заметно снизилась. Это связано прежде всего с психологическими проблемами, которых испытывают программисты в процессе использования этих языков. Например, в найпотужниший языке Lisp программа имеет очень сложную для понимания списковую структуру и небольшой по объему проект очень быстро выходит из-под контроля. В языке Prolog программист должен точно знать логику работы встроенной машины логического выведения, а работа программы зависит от структуры и содержания базы знаний БЗ. Если с проектированием программы и структуры БЗ программист производится, то для заполнения БЗ ему нужно быть экспертом в предметной отрасли или постоянно общаться с экспертом и использовать его знание, которое является сложным заданием. Следовательно, чтобы языки искусственного интеллекта приобрели широкое использование, нужно создать дополнительные программные средства поддержки программистов. Изучение вопросов эволюции МП направлено на облегчение выбора языка для решения определенных задач. Однако следует осознавать, что не нужно изучать все существующие МП. Достаточно выучить по одному языку каждого класса в меру потребности, ведь в процессе эволюции языка одного класса сближаются. И помнить главное: наилучшим является тот язык, который знаешь в совершенстве.