Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Среда CLR




Классификация языков программирования

Машинный код процессора

Основы программирования

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

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

Машинные коды трудно воспринимаются человеком. Поэтому люди составляют программу на удобном для себя языке – языке высокого уровня. Программирование на естественном человеческом языке (метаязыке) может использоваться только на этапе составления алгоритма.

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

Программа на языке программирования для выполнения требует преобразования в машинные коды. Эту операцию выполняют специальные программы – трансляторы.

Существуют два классических видов трансляторов: компилятор и интерпретатор.

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

- транслированная программа может исполняться без компилятора,

- при трансляции может использоваться технология оптимизации,

- скорость работы компилированной программы в сотни раз выше, чем интерпретируемой.

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

Альтернативой компилятору служит интерпретатор.

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

- постоянный контроль среды программирования,

- удобства тестирования и отладки,

- легкость остановки программы.

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

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

- языки низкого уровня (машинно-ориентированные),

- языки высокого уровня (удобные для восприятия человеком).

В свою очередь языки высокого уровня бывают:

- процедурно-ориентированные. Содержат набор универсальных команд (Pascal);

- проблемно-ориентированные. Имеют команды узкого назначения (Mathcad);

- объектно-ориентированные. Программирование на уровне объектов (Delphi, С++);

- событийно-ориентированные. Программирование на уровне событий (С#);

- визуальные. Поддерживают визуальное программирование (Visual Basic);

- комплексные. Поддерживают многие из перечисленных свойств.

Следует различать пять поколений языков программирования:

1. Начало 1950-х годов. Язык Ассемблера. Его принцип "Одна инструкция – одна строка". Инструкция на языке однозначно соответствует машинному коду команды.

2. Начало 1950-х – конец 1960-х годов. Язык символического Ассемблера. В нем появилось понятие переменной.

3. 1960-е годы. Универсальные языки программирования.

4. С начала 1970-х годов до настоящего времени. Проблемно-ориентированные языки для создания проектов в узкой предметной области.

5. С середины 1990-х годов до настоящего времени. Языки с автоматизацией программирования, языки визуального программирования.

В таблице 1 и 2 соответственно приведен перечень языков низкого и высокого уровней.

Таблица 1. Языки низкого уровня

Язык Расшифровка
Assembler Ассемблер.
Macro Assembler Макро Ассемблер

Таблица 2. Языки высокого уровня

Язык Расшифровка Примечание
Fortran Formula Translator От слов - транслятор формул.
BASIC Beginner’s All-purpose Symbolic Instruction Code Многоцелевой мнемокод для начинающих, созданный в 1960-е годы.
Visual Basic Визуальный BASIC Язык 5-го поколения. Его версия – рабочий язык пакета Microsoft Office.
Cobol Common Business Oriented Language Язык для задач в экономике, бизнесе.
Algol Algorithmic Language   Язык создан для описания алгоритмов. Не получил широкого распространения.
Pascal   Универсальный язык, созданный в 1970-х годах. Один из часто применяемый на практике.
С   Язык для системного программирования, созданный в 1970-х годах компанией Bell.
С++   Объектно-ориентированное расширение С++. Создан в 1980 году Страуструпом.
С# С шарп Многоплатформенная версия языка С++. Современный язык программирования
Java   Модификация С для Internet. В нем удалены низкоуровневые возможности языка С.

3. Программирование на языке C#

3.1 C# и платформа.NET Framework

Язык программирования C# был разработан в качестве эффективного надежного и простого в использовании средства. В настоящее время C# является частью системы Visual Studio.NET, предназначенной для удобной работы с платформой.NET Framework и создания нового способа написания надежного программного обеспечения [1].

В отличие от традиционных кодов, код C# не компилируется непосредственно в машинный код. Компилятор C# преобразует исходный код C# в код на промежуточном языке IL (MS Intermediate Language). Файлы IL называются сборками. Подобные сборки создаются языками на основе общеязыковой среды выполнения CLR (Common Language Runtime). Эта среда поддерживает языки Visual C#, Visual C++, Visual Basic. Что упрощает сочетание различных программных компонентов, написанных на разных языках.

Файлы CIL отображаются в виде стандартных файлов.exe или.dll, однако выполняются они средой CLR. При необходимости CLR компилирует программу CIL в машинный код с последующим исполнением этого кода. В исполняемый код включаются ссылки на подпрограммы, содержащиеся в сборках. Для их работы на компьютере должна быть установлена платформа.NET Framework.

За счет создания промежуточного кода повышается надежность, безопасность и переносимость программ. При наличии на компьютере платформы.NET Framework программы C# компилируются, выполняются и распространяются так же, как и другие.

Файлы CIL имеют расширение.exe и являются фактически исходниками. Если их надо запустить на компьютере без платформы.NET Framework, то требуется формировать настоящий исполняемый файл, используя при этом специальные процедуры.

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

Основной задачей программиста является написание исходного текста программы на одном из языков программирования. Для этого он использует уже готовые программные коды (библиотеки), написанные как им самим, так и другими разработчиками. Эти коды в платформе.NET Framework называются сборками.

Сборка – это единица повторного использования кода, которая может быть подключена на время исполнения кода. Файл сборки называется управляемым. Сборка, на ряду с программным CIL кодом, содержит метаданные и данные (ресурсы), необходимые при использовании сборки для генерации бинарного файла.

Процесс преобразования программы CIL в машинный код называется JIT-компиляцией (Just in time – точно во времени). Иначе, CIL-код, находящийся в запускаемой сборке, тут же компилируется в машинный код, на который затем передается управление (.exe). Порядок исполнения довольно сложная процедура [1]. Следует отметить, что программы на CIL переводятся в исполняемый бинарный код реального процессора лишь непосредственно перед исполнением. Полученный код сохраняется в оперативной памяти и исполняется. После завершения компиляции получается бинарный файл, сохраняемый на диске, который может затем исполняться без повторной компиляции.

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




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


Дата добавления: 2014-10-17; Просмотров: 760; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.017 сек.