74546

Программирование. Языки программирования низкого и высокого уровней

Доклад

Информатика, кибернетика и программирование

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

Русский

2015-01-04

25.55 KB

13 чел.

Программирование - это искусство создавать программные продукты, которые написаны на языке программирования. Язык программирования – это формальная знаковая система, которая предназначена для написания программ, понятной для исполнителя (в нашем рассмотрении – это компьютер). Данный сайт предназначендля начинающих программистов, для чайников, для новичков, для детей, а также для профессионалов.

Язык программирования ( англ. Programming language ) - система обозначений для описания алгоритмов и структур данных, определенная искусственная формальная система, средствами которой можно выражать алгоритмы. Язык программирования определяет набор лексических, синтаксических и семантических правил, задающих внешний вид программы и действия, которые выполняет исполнитель ( компьютер ) под ее управлением.

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

 

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

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

Пример машинного кода и представления его на ассемблере

Трансляторы делятся на:

компиляторы - превращают текст программы в машинный код, который можно сохранить и затем использовать уже без компилятора (примером являются исполняемые файлы с расширением *. exe).

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

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

Преимущества

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

Недостатки

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

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

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

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

Ассемблер - язык низкого уровня, что широко применяется до сих пор.

 

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

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

К языкам программирования высокого уровня относятся:

Фортран

Кобол

Алгол

Pascal

Java

C

C++

C#

Objective C

Smalltalk

Delphi

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


 

А также другие работы, которые могут Вас заинтересовать

33655. Атаки на протокол TCP и его защита 34 KB
  Если очередь входных соединений заполнена а система получает SYNпакет приглашающий к установке соединения он будет проигнорирован. ddress Spoofing Для формирования ложного TCPпакета и последующего перехвата установленного между доверенными узлами виртуального соединения атакующему необходимо знать текущие значения идентификаторов для данного соединения Seq и ck. В этом случае можно попытаться получить эти числа путём математического предсказания начального значения идентификатора TCPсоединения экстраполяцией его предыдущих значений...
33656. Метод Эль-Гамаля 103 KB
  1 WP1 = 1 mod P Затем генерируется секретный ключ Ха из диапазона 1 X P1. Затем вычисляется открытый ключ Y как степень: Y = WX mod P. Затем выбрав число K мы вычисляем число R по формуле : R = YK mod P. Для ее формирования используется операция побитового сложения по модулю 2: C1 = WK mod P 5.
33657. БЛОЧНОЕ КОДИРОВАНИЕ (АЛГОРИТМ ГОСТ) 252.5 KB
  БЛОЧНОЕ КОДИРОВАНИЕ АЛГОРИТМ ГОСТ В нашей стране установлен единый алгоритм криптографического представления данных для систем обработки информации в сетях ЭВМ отдельных вычислительных комплексов и ЭВМ который определяется ГОСТ 2814789. Этот алгоритм криптографического преобразования данных представляет собой 64битовый блочный алгоритм с 256битовым ключом предназначен для аппаратной и программной реализации удовлетворяет криптографическим требованиям и не накладывает ограничений на степень секретности защищаемой информации. В любом...
33658. БЛОЧНОЕ КОДИРОВАНИЕ (АЛГОРИТМ DES) 44 KB
  БЛОЧНОЕ КОДИРОВАНИЕ АЛГОРИТМ DES Алгоритм DES представляет собой блочный шифр предназначенный для шифрования данных 64битовыми блоками. DES относится к симметричным алгоритмам т. Фундаментальным строительным блоком Des является применение к тексту единичной комбинации этих методов подстановка а за ней перестановка зависящей от ключа. DES включает 16 раундов одна и та же комбинация методов применяется к открытому тексту 16 раз DES оперирует 64битными блоками открытого текста .
33659. Протокол SSL 46.5 KB
  Протокол SSL Протокол SSL Secure Socket Lyer предназначен для защиты данных передаваемых между приложениями клиентом и сервером. SSL работает поверх транспортного протокола предполагающего установление соединения TCP. SSL прозрачен для служб прикладного уровня таких как HTTP и FTP. Протокол SSL базируется на следующих принципах: Защищённый канал передачи данных.
33660. СМЕШАННЫЙ ШИФР (АЛГОРИТМ ГОСТ + ЭЛЬ ГАМАЛЯ) 32 KB
  К тому же ни одна из реализаций систем с открытым ключом предложенных до сих пор не может конкурировать в скорости с системами с секретным ключом такими например как DES или ГОСТ. Когда необходимо передать большое количество информации может оказаться что использование криптоалгоритмов с открытым ключом было бы слишком медленным тогда как использование симметричных алгоритмов было бы либо невозможным изза отсутствия разделенного секретного ключа либо не отвечающим требованиям секретности. Гибридная смешанная криптосистема...
33661. БЛОЧНОЕ КОДИРОВАНИЕ (АЛГОРИТМ DES, РЕЖИМ ECB) 54.5 KB
  В режиме ЕСВ каждый блок открытого текста заменяется блоком шифротекста. Распространение ошибки: При расшифровании ошибки в символах шифротекста ведут к некорректному расшифрованию соответствующего блока открытого текста однако не затрагивают остальной открытый текст. При случайной потере или добавлении лишнего бита шифротекста весь последующий шифротекст будет расшифрован некорректно если только для выравнивания границ блоков не используется какоенибудь выравниевания по границам блока. Режим CBC В режиме...
33662. Режимы тройного шифрования из 23 57.5 KB
  Тройное шифрование в режиме СВС Оба режима требуют больше ресурсов чем однократное шифрование: больше времени или больше аппаратурыф БЛОЧНОЕ КОДИРОВАНИЕ АЛГОРИТМ 3DES SDES В ряде реализаций DES используется тройной алгоритм DES см. Так как преобразование DES не является группой полученный шифротекст гораздо труднее вскрыть полным перебором: 2112 попыток вместо 256 Рис. Тройной DES SDES Упрощенный DES или SDES алгоритм шифрования который носит скорее учебный чем практический характер. В данной лабораторной работе SDES...
33663. БЛОЧНОЕ КОДИРОВАНИЕ (АЛГОРИТМ DES, РЕЖИМ CFB) 98 KB
  БЛОЧНОЕ КОДИРОВАНИЕ АЛГОРИТМ DES РЕЖИМ CFB Криптографический режим обычно объединяет базовый шифр обратную связь какогото типа и нескольких простых операций. Опреации просты поскольку стойкость определяется используемым алгоритмом шифрования а не режимом. Требования предъявляемые к режимам: Режим не должен снижать стойкость используемого алгоритма Эффективность режима не должна быть ниже чем у используемого алгоритма Отказоустойчивость устойчивость к потерям синхронизации процессов шифрования и дешифрования. Режим CFB Блочный...