Характеристика языков программирования: Языки программирования: характеристика, описание, виды OTUS

Содержание

Характеристика языков программирования

5

Язык программирования – это средство описания алгоритма для решения задач на ЭВМ.

Алгоритм, записанный на языке программирования, называется программой.

К средствам языка относятся:

Декларативные

Операционные

Объектные

Функциональные

Языки символического кодирования

Структурные

Визуальные

Логические

Языки низкого уровня.

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

Машинный язык – представляет собой последовательность команд, записанных в двоичных кодах (нулей и единиц).

Для своего облегчения программисты придумали язык, переводящий символические имена в машинные коды.

Ведь гораздо, легче запомнить какое-то ключевое слово, чем соответствующий ему двоичный код.

Это так называемые языки символического кодирования. В них используются буквенные и буквенно-цифровые коды. К ним относятся: Ассемблер, Макроассемблер, автокоды.

Достоинство языков низкого уровня: высокая скорость решения задач.

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

Языки высокого уровня.

Языки высокого уровня машинно-независимы, т.к. ориентированы не на систему команд той или иной ЭВМ, а на систему операндов, характерных для записи определенного класса алгоритмов.

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

Недостатки: занимают больше памяти, медленнее выполняются, требуется дополнительное время на трансляцию и дополнительная память для транслятора.

Чтобы ЭВМ могла выполнить программу, написанную на любом языке высокого уровня, текст ее нужно перевести на язык машинных команд. Этот процесс называется трансляция.

Трансляция – это процесс перевода программ, написанных на языке высокого уровня на машинный язык.

Используются два режима трансляции: компиляция и интерпретация.

Компилятор преобразует (транслирует) программу в модуль на машинном языке, после этого программа записывается в память компьютера и лишь потом исполняется.

Интерпретатор – это транслятор, производящий пооператорную (покомандную) обработку и выполнение исходной программы.

1. Процедурное программирование.

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

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

К операционным языкам относятся Фортран, Бейсик.

К структурным языкам относятся: Паскаль, Си, Ада, ПЛ/1.

Дадим краткую характеристику нескольким процедурным языкам.

Фортран

(переводчик формул) был создан в 1954-1958 гг. сотрудниками фирмы IBM под руководством Джона Бэкуса. Он использовался для решения научно-технических задач. Это первый язык высокого уровня. Создана большая библиотека программ.

Кобол (общепринятый деловой язык) был создан при поддержке фирмы IBM в 1958-1960 гг. Он ориентирован на решения задач обработки данных и широко используется для решения учетно-экономических и управленческих задач.

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

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

ПЛ/1 (универсальный программно-ориентированный) разработан в 1964 г. в США фирмой IBM для больших ЭВМ. Использовался для научных расчетов, организации больших массивов информации. Это очень мощный, но и очень сложный язык.

Паскаль создал в 1970 г. профессор Никлаус Вирт в Цюрихском политехническом Университете. Свое название получил в честь французского математика и физика 17 века Блеза Паскаля, изобретателя «суммирующей машины». Он создавался как язык для обучения программированию, а с другой – давал возможность эффективно решать самые разнообразные задачи на современных ЭВМ. Это очень простой и компактный язык, его понятия близки к фундаментальным понятиям математики. Особенно широкое распространение языка началось после 1984 г., когда были созданы версии Turbo Pascal.

Ада создан в 1980 г. и назван в память об Аде Лавлейс – дочери английского поэта лорда Байрона, первой программистки в истории вычислительной техники. Он был создан во Франции по заказу американского министерства обороны как универсальный язык программирования. Этот язык унаследовал качества языков Паскаль и АЛГОЛ-68 и дополнительно приобрел многие другие качества : системное программирование, параллельность и т.д. Этот язык очень сложен для изучения.

С (Си) был создан в 1972 г. в лаборатории Bell. Его простое и неброское название связано с тем, что язык не планировался в качестве массового. В данном случае «С» — это просто третья буква английского алфавита. Этот язык был разработан для реализации операционной системы Unix. Язык С приобрел большую популярность среди системных и прикладных программистов. В настоящее время этот язык реализован для большинства компьютерных платформ.

Общая характеристика языков программирования, области их применения

Содержание:

  • Что такое язык программирования
  • Виды языков программирования
    • Уровень зависимости
    • Особенности разработки
    • Классификация задач
  • Общая характеристика языков программирования
  • Области применения
    • Мобильная разработка
    • Веб-разработка
    • Разработка игр
    • Разработка настольных приложений

Содержание

  • Что такое язык программирования
  • Виды языков программирования
    • Уровень зависимости
    • Особенности разработки
    • Классификация задач
  • Общая характеристика языков программирования
  • Области применения
    • Мобильная разработка
    • Веб-разработка
    • Разработка игр
    • Разработка настольных приложений

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

Язык программирования представляет собой комплекс формальных стандартов и принципов написания программного продукта.

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

  • слова;
  • функции;
  • операторы.

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

Осторожно! Если преподаватель обнаружит плагиат в работе, не избежать крупных проблем (вплоть до отчисления). Если нет возможности написать самому, закажите тут.

 

Источник: skillbox.ru

На изображении первым словом является «alert», то есть лексика. Это способ обработки текстовой информации. Синтаксические правила здесь представлены выражениями, которые заключены в одинарные кавычки, скобки, дополнены точкой с запятой. Итоговый результат называют семантикой. Подробный и корректный инструктаж позволяет компьютеру вывести на экран всплывающее окно, которое дополнено кнопкой и надписью с сообщением: «Это программа на JavaScript». Пример изображен ниже:

Источник: skillbox.ru

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

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

  • низкий уровень;
  • высокий уровень.

В зависимости от правил программирования выделяют следующие группы языков:

  • процедурные;
  • непроцедурные;
  • объектно-ориентированные.

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

  • универсальные;
  • специализированные.

Существуют также категории написания программ:

  • логическое;
  • функциональное;
  • объектно-ориентированное.

Программные языки различают по типам:

  • кроссплатформенные;
  • нативные.

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

Уровень зависимости

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

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

Языки программирования из категории высокого класса называют машинно-независимыми. Такие языковые инструменты применимы к разнообразным устройствам неодинаковых видов. Высокоуровневые языки более доступны по сравнению с аналогами из низкого класса. В данном случае ярким примером такого инструментария для написания программ является первый язык высокого уровня под названием Fortran.

Особенности разработки

Исходя из этого критерия, различают следующие типы программирования:

  • процедурный;
  • непроцедурный;
  • объектно-ориентированный.

В первом случае процесс написания программного кода характеризуется такими специфическими особенностями, как:

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

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

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

  • наследование;
  • инкапсуляция;
  • абстракция.

Готовое приложение представляет собой связанные объекты. Продукт базируется на взаимной связи компонентов на экране, а не на логике в чистом виде.

Классификация задач

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

  • веб-разработка;
  • игровая индустрия;
  • написание приложений для бизнес-среды;
  • прочие сферы.

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

  • web-программирование;
  • скрипты;
  • разметка;
  • гипертекст;
  • мобильные платформы.

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

Общая характеристика языков программирования

С разной степенью зависимости языки программирования по правилам логики включают в себя несколько основных компонентов:

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

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

Области применения

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

Мобильная разработка

Разработчики мобильных приложений для операционной системы Android несколько ограничены в выборе языковых инструментов. Как правило, специалисты работают с Java. В процессе реализации проектов требуется применять на практике знания профильной среды Android Studio. Более сложные продукты создают по средствам Kotlin.

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

Веб-разработка

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

  1. JavaScript.
  2. HTML.
  3. CSS.

С целью осуществления полной разметки интернет-платформы, выявления расположения объектов и использования стилей разработчики обращаются к языкам CSS и HTML. При работе над сайтами не обойтись без более сложного и требовательного языкового средства  JavaScript. Выбор в пользу того или иного инструментария определяется характером решаемых задач. Библиотеки, которые подходят для Front-end:

  • Angular;
  • React JS;
  • Vue JS;
  • jQuery.

Библиотеки для Back-end или серверной части:

  • Ruby;
  • C++;
  • PHP;
  • Python;
  • Go;
  • Java.

Стоит отметить, что JavaScript по праву считают незаменимым инструментом разработчика веб-продуктов. Однако знания программного кода необходимо сочетать с умением работать с технологией Node JS. В состав стандартного комплекта инструментария включены PHP, Python и Java.

Разработка игр

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

  1. Си.
  2. С++.
  3. C#.

В процессе подбора оптимального движка специалисты ориентируются на характер и сложность поставленных задач. К примеру, если есть потребность в качественной 2D или 3D графике, целесообразно выбрать Unity. Масштабные проекты сверстаны, как правило, на CryEngine или Unreal Engine. Доступны следующие тандемы языков и движков:

  • Unreal Engine и С++;
  • Unity и C#;
  • Godot и Python.

Разработка настольных приложений

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

  1. Linux или Windows: подойдет Си, С++, C#, универсальный Java.
  2. Mac: Си, Swift, Java.

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

Насколько полезной была для вас статья?

У этой статьи пока нет оценок.

Выделите текст и нажмите одновременно клавиши «Ctrl» и «Enter»

Поиск по содержимому

Характеристики хорошего программирования — РЕШЕНИЕ

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

1) Ясность и простота выражения
2) Использование имен собственных для идентификаторов
3) Комментарии
4) Отступ

Давайте обсудим один за другим:

1)
Ясность и простота выражения :

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

  1. Используйте библиотечные функции, чтобы сделать программы более мощными
    Пример:
    Чтобы найти вывод = x6
    Вывод = X *X * X * X * X * X
    Вместо написания вышеуказанной строки мы можем использовать библиотечную функцию и можем сделать это короче.
    Мы можем использовать выход = мощность (X, 6)
  2. Следуйте простоте, чтобы сохранить ясность выражения
    Пример:
    X = A+B/A-B – U +VY/X+Y
    Мы можем упростить приведенное выше выражение и написать :
    X1 = (A+B) / (A-B)
    X2 = (U+V*Y) / (X +Y)
    X = X1 –X2
  • Избегайте использования программных уловок, смысл которых трудно понять пользователем.
2) Использование имен собственных для идентификаторов :

Идентификаторы определяются пользователем. Они используются, чтобы называть вещи. Имя связано с функцией или объектом данных (константы и переменные) и используется для ссылки на эту функцию или объект данных. Идентификаторы состоят из букв (A-Z, a-z), цифр (0-9) и символ подчеркивания ( _ ). Однако они должны начинаться с буквы или подчеркивания, а не с цифры.

  1. Дайте осмысленные имена для переменных (данные – объект) и функции.
    Пример:
    Для вычисления площади квадрата:
    Мы используем имена переменных: Площадь и Сторона
    Площадь = Сторона * Сторона.
  2. Используйте собственные имена для констант.
    Пример:
    ¶ = 3,14
    Дайте Pi = 3,14
    Не используйте одно и то же имя, например, пользовательский, клиент или учетная запись, бухгалтер.
    Не используйте однобуквенные идентификаторы.
3) Комментарии :

Они обычно добавляются с целью облегчения понимания исходного кода. Следовательно, добавьте комментарии к своему коду на простом английском языке, которые описывают функцию кода, а также причину вашего решения сделать это определенным образом.
Как правило, они классифицируются как «блочный комментарий» или «строчный комментарий». Комментарий блока реализован в python с помощью «» и «»», а комментарий строки реализован с помощью #.
Пример:
«Напишите программу для вывода всех чисел от 1 до 100, используя цикл while в python».
A=1
while (a<100): # While оператор print a
a = a+1

4) Отступ :

Ведущий пробел (пробелы и табуляции) в начале каждого оператора, который используемый для определения группы утверждений, известен как «отступ».
Пример:
Если A > B :
         print «A is Big» # Block1
else:
          print «B is Big» # Block2
 Если выражение «если» оценивается как истинное, то выполняется блок 1, в противном случае выполняется блок 2.

Характеристики хорошего программирования:

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

1) Гибкость
2) Удобство для пользователя
3) Портативность
4) Надежность
5) Самодокументирующийся код

Давайте обсудим Характеристики хорошего программирования один за другим:

1) 00 Гибкость A : должен быть достаточно гибким, чтобы обрабатывать большинство изменений без необходимости переписывать всю программу. Например, программное обеспечение САПР (автоматизированное проектирование) используется для различных целей, таких как; инженерное проектирование, макет и дизайн печатных плат, архитектурный дизайн, технический чертеж, промышленное искусство и т. д.

2) Удобный для пользователя :

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

3) Переносимость :

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

Программы на высоком языке часто более переносимы, чем программы на ассемблере.

4) Надежность :

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

5) Самодокументирующийся код :

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

Для получения более подробной информации по вышеуказанной теме «Характеристики хорошего программирования» вы также можете написать нам @ [email protected]

Чтобы проверить более раннюю тему по Python, нажмите ниже:

«https://www.soluversity.in/what-is-python-and-why-so-popular»
«https://www.soluversity. in/frameworks-available-for-developing-various-types-of-application-in-python “

Источники: www.python.org

Критерии проектирования для языков программирования

Критерии проектирования для языков программирования

последнее обновление 24. 08.15

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

Языковые цели

В течение 1950–1960-х годов — компилировать программы для эффективного выполнения.

  • Обнаружена прямая связь между функциями языка и оборудованием — целые числа, вещественные числа, операторы перехода
  • Программаторы дешевые;
  • Машины дорогие;
  • Держите машину занятой

Но сегодня

  • Эффективно компилировать программы
  • Мощность процессора и память очень дешевые
  • Прямая связь между функциями языка и концепциями дизайна — инкапсуляция, записи, наследование, функциональность, утверждения

 

 

 

 


Общие признаки хорошего языка

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

Ортогональность — каждая комбинация признаков имеет смысл

Естественность для приложения — структура программы отражает логическую структуру алгоритма

Поддержка абстракции — данные программы отражают решаемую проблему

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

Среда программирования — внешняя поддержка языка

Переносимость программ — переносимость полученных программ с компьютера, на котором они разработаны, на другие компьютерные системы

Стоимость использования — выполнение программы, перевод программы, создание программы и обслуживание программы

 

 

 


Эффективность исполнения

Это самый ранний критерий дизайна из-за малого объема памяти и медленной работы. исполнение.
В FORTRAN были операторы, напоминающие машинные инструкции.
 

ПЕРЕЙТИ (10,20,30,40,50),I «Вычисляемый переход» FORTRAN
ЕСЛИ(А(I) — СРЕДНИЙ) 20,30,40 «Арифметика if» FORTRAN
х <<= 3 Операторы проталкивания бит C

 

 

 


Возможность записи

Это качество выразительности языка. Возможность записи должна быть ясно, кратко, быстро и правильно

 APL — крайний случай

A <- i 12 p 3 4 приводит к матрице 3x4, инициализированной последовательными целыми числами:

 [1 2 3 4]
[5 6 7 8]
[9 10 11 12]

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

(f a 1 a 2 a 3 . .. a n ) это оператор и функциональный синтаксис (имя функции и аргументы следуют)
(+ 12 всего)

(1 2 3 4 (5 6 ) 7 (9 10))) — это структура данных, которая может представлять дерево, подобное структура, вложенные списки, матрицы и т. д.

 


Читаемость

Качество языка, позволяющее читателю (даже непрограммисту) понять природу вычисления или алгоритма.

COBOL — крайний пример

.
 ЕСЛИ НЕ ФЛАГ КОНЦА ФАЙЛА, ТО
ВЫПОЛНИТЬ 100-READ-NEXT-DATA-SET
ИЗМЕНЕНИЕ I ОТ 1 ДО 10
В КОНЦЕ ВЫПОЛНИТЬ 999-НЕОЖИДАННЫЙ-EOF. 

 

 

 

 

 


Эффективный исполняемый код

Оптимизация:

С

  • на статически объявленные переменные (по сравнению с переменными на основе стека) легко ссылаться
  • константы (#define)
  • регистрировать переменные
  • ++ (добавить 1 операцию)

 

 

 


Эффективность перевода

Насколько быстр компилятор или интерпретатор?

Паскаль это легко

  • Возможна компиляция в 1 проход
  • Правило
  • "определить его перед использованием"
Алгол имеет некоторые медленные функции
  • передача параметра вызова по имени
  • процедурные параметры (тоже в Паскале)

 

 

 

 


Надежность

Гарантия того, что программа не ведет себя неожиданно.
напр. проверка границ массива

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

 

 

 

 

 

 


Реализуемость

Это эффективность, с которой переводчик может быть написан

  • Алгол в том виде, в котором он был разработан, был языком на основе стека, но компьютеры в то время не имел стеков как часть архитектуры
  • реализация рекурсии сложна без стека
  • Оператор FORTRAN EQUIVALENCE (классическая проблема алгоритмов)

 

 

 

 

 

 


Ремонтопригодность

 

Простота поиска и исправления ошибок и добавления новых функций
Это заменяет возможность записи.
Рассмотрим C++, Java, Ada и Modula-3

  • модули и пакеты
  • сокрытие информации
  • методы разработки программного обеспечения

 

 

 

 

 


Универсальность

Избегание особых случаев и обобщение родственных конструкций в одну конструкция

  • Паскаль имеет 3 различные структуры циклов (пока, повторите и для) - не хороший пример универсальности
  • Ада имеет 1 циклическую структуру с вариациями — хороший пример общности
  • .
петля ... конец петли

для цикла i=1..n ... конец цикла

в то время как условный цикл ... конец цикла

 

 

 

 

 

 


Ортогональность

Независимые функции должны контролироваться независимыми механизмами

  • конструкты не должны вести себя по-разному в разных контекстах
  • взаимодействие между двумя независимыми функциями должно быть полезной функцией
  • каждая комбинация функций имеет смысл

Пример типов данных и ввода/вывода Pascal  (аналогичен C)

Тип данных Ввод/вывод
символ да
целое число да
настоящий да
логическое значение да
перечисление нет

Преимущество ортогональности для программистов

  • м опции по оси X
  • n опции по оси Y
  • млн ​​ взаимодействий
  • m+n фактов для изучения
  • e исключения
  • m+n+e факты и исключения, которые необходимо изучить
  • мн-е особенности
  • хочу m+n+e << mn-e

 

 


Однородность

Согласованность внешнего вида и поведения языковых конструкций

Паскаля, например

  • REPEAT-UNTIL vs WHILE DO BEGIN. .. END
  • ; терминатор против разделителя

 

 

 

 

 


Простота

будь проще

  • Успех Паскаля
  • Бейсик был простым, но в нем не было объявлений и блоков
  • .
  • Java попыталась упростить C++

Выразительность

Наличие достаточного количества функций, необходимых для области приложений

 

 

Точность

Мера того, насколько хорошо язык имеет функции для небольших вариаций

 

 

 

 

 

 

 


Независимость от машины (мобильность)

Особенности языка не должны разрабатываться с уклоном на конкретная машина

 

 

 

 

 

Безопасность

Языковые нарушения определения не должны ускользнуть от обнаружения
  • например Отдельные компиляции FORTRAN
  1. возможно несоответствие параметров аргументам
  2. причина для прототипов C

 

 

 

 

 


Регулярность (согласованность)

Соответствие принятым обозначениям и соглашениям

  • например свободный формат и фиксированный формат
ФОРТРАН классический (также пример ортогональных задач)
 DO 99 I=1.
Оставить комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *