Файл: Классификация языков программирования высокого уровня и их характеристика.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 24.04.2023

Просмотров: 239

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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

Недостатки языка Си:

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

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

Си++

Безусловно, Си++ превосходит, главным образом, к Cи. Cи сохранен как подмножество, поэтому сделанного в Cи акцента на средствах низкого уровня достаточно, чтобы справляться с самыми насущными задачами системного программирования. Cи, в свою очередь, многим обязан своему предшественнику BCPL.

Название Си++ - изобретение лета 1983г. Более ранние версии языка использовались, начиная с 1980г и были известны как "Cи с Классами". Первоначально язык был разработан потому, что автор хотел написать событий, но управляемые модели для чего был идеален Simula67, если не принимать во внимание эффективность. "Cи с Классами" использовался для крупных проектов моделирования, в которых строго тестировались возможности составления программ, требующих (только) минимального пространства памяти и времени на выполнение. В "Cи с Классами" не хватало перегрузки операций, ссылок, виртуальных функций и многих деталей. Си++ был впервые внедрен за пределами исследовательской группы автора в июле 1983-го. Однако тогда большие особенности Си++ были еще не придуманы.

Название Си++ выдумал Рик Масситти. Название указывает на эволюционную природу перехода к нему от Cи. "++" — это операция приращения в Cи. Чуть более короткое имя Cи+ является синтаксической ошибкой, кроме того, оно уже было использовано как имя совсем другого языка программирования. Знатоки семантики Cи находят, что Си++ хуже, чем Cи ++. Названия D язык не получил, так как он является расширением Cи и в нем не дает попыток исцелиться от проблем путем выбрасывания различных особенностей.


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

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

В качестве начального языка для Си++ был выбран Cи, потому что он:

• многоцелевой, лаконичный и относительно низкого уровня:

• отвечает большинству задач системного программирования:

• идет везде и на всем:

• пригоден в среде программирования UNIX.

В Cи есть свои сложности, но в наспех спроектированном языке программировании тоже были бы свои, а сложности Cи нам известны. Самое главное, что работа с Cи позволила "Cи с Классами" быть полезным инструментом в ходе первых месяцев раздумий о добавлении к Cи Simula-подобных классов.

Си++ стал применяться шире, и по мере того, как возможности, которые предоставляется им помимо возможностей Cи, давались все не менее существенными, вновь и вновь назревал вопрос о том, чтобы сохранять ли совместимость с Cи. Ясно то что, отказавшись от некоторой части наследия Cи можно было бы избежать ряда проблем. Это не было сделано, потому что:


• есть миллионы строк на Cи, которые могли бы принести пользу в Си++ при условии, что их не нужно было бы полностью переписывать с Cи на Си++;

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

• есть десятки тысяч программистов, знающие Cи, и которым, поэтому, нужно только научиться применять новые особенности Си++, а не заново изучать его основы;

• поскольку Си++ и Cи будут применяться на одних и тех же системах одними и теми же людьми, отличия должны быть либо очень большими, либо очень маленькими, чтобы свести к минимуму ошибки и недоразумения.

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

Си++ был разработан из языка программирования Cи и за очень немногими исключениями сохраняет Cи как подмножество. Начальный язык, Cи подмножество Си++, был спроектирован так, что имея очень близкое соответствие между его типами, операциями и операторами и компьютерными объектами, с которыми непосредственно приходится иметь дело: числами, символами и адресами. За исключением операций свободной памяти new и delete, отдельные выражения и операторы Си++ обычно не нуждаются в тайной поддержке во время исполнения или подпрограммах.

Одним из первых предназначений Cи было использовать его вместо программирования на ассемблере в самых насущных задачах системного программирования. Когда проектировался Си++, были приняты меры, для того чтобы не ставить успехи под угрозу в этой области. Различие между Cи и Си++ были в свою очередь в степени внимания, которое уделяет типам и структурам. Cи выразителен и снисходителен. Си++ еще более выразителен, но, для того чтобы достичь этой выразительности, программист должен больше уделить внимания типам его объектов. Когда известны типы объектов, компилятор может правильно обрабатывать его выражения, тогда как в ином случае программисту пришлось бы задавать действия с мучительными подробностями. Знание типов объектов также дает возможность компилятору обнаруживать ошибки, которые в ином случае остались бы до тестирования. Заметьте, что применение системы типов для того, чтобы получить проверку параметров функций, защитить данные от случайного искажения, задать новые операции и т.д., само по себе не увеличивает расходов по времени исполнения и памяти.


Крайнее внимание, уделенное при разработке Си++ структуре, отразилось на возрастании масштаба программ, которые написаны со времени разработки Cи. Маленькую программу (меньше 1000 строк) вы можете заставить работать с помощью грубой силы, даже нарушая все правила хорошего стиля. Для программ больших размеров это не совсем так. Если программа в 10 000 строк может иметь плохую структуру, то вы обнаружите, что новые ошибки появляются так же быстро, как удаляются старые. Си++ был разработан так, чтобы дать возможность умным образом структурировать большие программы таким образом, чтобы для одного человека не было непомерным справляться с программами в 25 000 строк. Существуют программы гораздо больших размеров, всё же те, работающие в целом, как оказывается, состоят из большого числа почти независимых частей, размер каждой из которых намного нижеуказанных пределов.

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

Замечание по проекту языка Си++

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

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

Исключались те черты, которые могли бы повлечь дополнительные расходы памяти или времени выполнения. Например, мысли о том, чтобы сделать необходимым хранение в каждом объекте ”хозяйственной” информации, были отвергнуты. Если пользователь расписывает структуру, которая состоит из двух 16-битовых величин, то структура поместится в 32-битовый регистр.

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


Рассмотрели различные языки программирования, сделаем вывод что при создании каждого из них, были ориентированы на различные сферы работы. Например, Липс открыл для программистов такую область как «искусственный интеллект». В настоящее время Лисп успешно применяется в экспертных системах, системах аналитических вычислений и т.п. Фортран использовался для технико-инженерских и логических вычислениях. Каждый последующий язык был ориентирован для конкретных целей. Но как показывает практика можно было использовать каждый из языков программирования в разных сферах, они имеют широкую возможность.

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

ЗАКЛЮЧЕНИЕ

Изобретение высокоуровневого языка программирования дало возможность нам общаться с компьютером, понимать, как понимает американец немного знакомый с русским языком древнюю азбуку Кириллицы. Честно говоря, в нашем развитии науки программирования пока что с ЭВМ на ВЫ. Поверьте, это не сарказм вы только посмотрите, как развивалась наука программирования с того времени, как зародились языки программирования, а ведь высокоуровневый язык программирования, судя по всему ещё младенец. Но если мы обратим ваше внимание на темпы роста и развития новейших технологий в области программирования, то можно предположить, что в ближайшем будущем, человеческие познания в этой сфере, помогут воспроизвести на свет языки, которые умеют принимать, обрабатывать и передавать информации в виде мысли, слова, звука или жеста. Так и хочется назвать это детище компьютеризированного будущего: «языки программирования "высочайшего" уровня». Возможно, решения этого вопроса проста, а в ближайшем будущем этого проекта уже не за горами, и в этот момент, где ни будь в Запорожье, Амстердаме, Токио или Иерусалиме, перед стареньким 133MHz горбится молодой, никем не признанный специалист и разрабатывает новейшую систему искусственного интеллекта, которая наконец-то позволит человеку, с помощью своих машинных языков, вести диалог с машиной на ТЫ.

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