КАТЕГОРИИ: Архитектура-(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. Языки низкого уровня
Таблица 2. Языки высокого уровня
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; Просмотров: 862; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |