Понятия: алфавита, синтаксиса, семантики.



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

1) Строчные и прописные буквы латинского и национального алфавитов

2) Цифры

3) Знаки операций: + — * / = < : @ & |

4) Символ подчеркивания _ и пробела

5) Ограничители и разделители: . , ' ( ) [ ] { }

6) Специальные символы: ^ # $ и др.

Синтаксис — сторона языка программирования, которая описывает структуру программ как наборов символов (обычно говорят — безотносительно к содержанию). Синтаксису языка противопоставляется его семантика. Синтаксис языка описывает «чистый» язык, в то же время семантика приписывает значения (действия) различным синтаксическим конструкциям.

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

Понятие программ-трансляторов.

 

Программа-транслятор (англ. translator — переводчик) — это программа-переводчик. Она преобразует программу, написанную на одном из языков высокого уровня, в программу, состоящую из машинных команд

Способы трансляции.

 

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

устройство — процессор (трансляция называется компиляцией);

программа — интерпретатор (трансляция называется интерпретацией).

Виды трансляции:

 

1. компиляция;

2. интерпретация;

3. динамическая компиляция.

Компиляция

 

Язык процессора (устройства, машины) называется машинным языком, машинным кодом. Код на машинном языке исполняется процессором. Обычно, машинный язык — язык низкого уровня, но существуют процессоры, использующие языки высокого уровня (например, iAPX-432). Однако, такие процессоры не получили распространения в силу своей сложности и дороговизны.

Компилятор — транслятор, преобразующий исходный код с какого-либо языка программирования на машинный язык].

Процесс компиляции, как правило, состоит из нескольких этапов:

лексический анализ;

синтаксический анализ;

семантический анализ;

создание на основе результатов анализов промежуточного кода;

оптимизация промежуточного кода;

создание объектного кода, в данном случае машинного.

Программа может использовать сервисы, предоставляемые операционной системой, и сторонние библиотеки (например, библиотеки для работы с файлами и библиотеки для создания графического интерфейса). Для добавления в объектный файл машинного кода из других объектных файлов (кода статических библиотек) и информации о динамических библиотеках выполняется связывание(англ. link) или компоновка. Связывание или компоновка выполняется редактором связей или компоновщиком. Компоновщик может быть отдельной программой или частью компилятора. Компоновщик создаёт исполняемый файл. Исполняемый файл (программа) запускается следующим образом:

по запросу пользователя в ядре операционной системы создаётся объект «процесс»;

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

читает исполняемый файл;

загружает его в память;

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

выполняет связывание машинного кода программы с динамическими библиотеками (динамическое связывание);

передаёт управление программе.

 

Достоинства компиляции:

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

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

 

 

Недостатки компиляции:

компиляция — медленный процесс;

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

Ассемблер — компилятор, преобразующий текст с языка ассемблера на машинный язык. Язык ассемблера — язык, близкий к машинному языку, язык низкого уровня.

Интерпретация

 

Интерпретация — процесс чтения и выполнения исходного кода. Реализуется программой интерпретатором.

Интерпретатор может работать двумя способами:

читать код и исполнять его сразу (чистая интерпретация);

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

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

 

Этапы работы интерпретатора:

 

1. лексический анализ;

2. синтаксический анализ;

3. семантический анализ;

 

создание промежуточного представления кода (при чистой интерпретации не выполняется); исполнение.

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

Чистая интерпретация применяется, обычно, для языков с простой структурой, например, языков сценариев, языков APL и Лисп.

Примеры интерпретаторов, создающих байт-код: Perl, PHP, Python, Erlang.

Достоинства интерпретаторов по сравнению с компиляторами:

возможность работы в интерактивном режиме;

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

Недостатки интерпретаторов по сравнению с компиляторами:

низкая производительность (машинный код исполняется процессором, а интерпретируемый код — интерпретатором; машинный код самого интерпретатора исполняется процессором);

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

обнаружение ошибок синтаксиса на этапе выполнения (актуально для чистых интерпреаторов).

 

Сравнение чистого интерпретатора и интерпретатора, создающего байт-код:

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

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

интерпретатор, создающий байт-код, потребляет больше ресурсов системы (трансляция в байт-код занимает процессорное время; байт-код занимает место в памяти).

Динамическая компиляция

 

Динамическая или JIT компиляция — трансляция, при которой исходный или промежуточный код преобразуется (компилируется) в машинный код непосредственно во время исполнения, «на лету» (англ. justintime, JIT). Компиляция каждого участка кода выполняется только один раз; скомпилированный код сохраняется в кеше и при необходимости используется повторно.

Достоинства динамической компиляции по сравнению с компиляцией:

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

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

Недостатки динамической компиляции по сравнению с компиляцией и чистой интерпретацией:

большая сложность реализации;

большие требования к ресурсам.

Динамическая компиляция хорошо подходит для веб-приложений.

Динамическая компиляция появилась и поддерживается в той или иной мере в реализациях Java, .NET Framework, Perl, Python.

 

Понятие окна.

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

Назначение элементов окна.

Основные элементы окон Windows:

· Строка заголовка. Слева на ней находится системный значок (щелчок на нем вызывает системное меню окна, двойной щелчок окно закрывает), рядом со значком, в зависимости от типа окна — имя открытой папки (или путь к этой папке, зависит от настроек); имя документа и название программы, в которой он открыт; название диалогового окна, справа расположены:

· Кнопки управления окном: свернуть на панель задач, развернуть во весь экран (свернуть в окно), закрыть.

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

 

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

· Адресная строка. Довольно важный элемент окна, обеспечивает удобную навигацию, быстрый переход по структуре папок на компьютере. А также быстрый поиск папки или файла по адресу их местоположения. В адресную строку, к примеру, в браузере вводят данные веб-страницы (URL-адрес), благодаря чему мы и «гуляем» по Интернету.

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

· Рабочее поле. Основная часть окна, в ее пространстве расположены диски, файлы и папки (если это окно папки), для Word рабочим полем является лист.

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

· Строка состояния. Располагается внизу окна (ее наличие обусловлено настройками окна или программы). Она показывает служебную информацию. Так, в программе MS Word строка состояния показывает количество страниц и разделов в документе, язык текста и другую информацию.

 


Дата добавления: 2018-05-12; просмотров: 694; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!