Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Промежуточный язык IL и байт-код Java. Сравнительная характеристика.

Читайте также:
  1. Амплитудно-частотная характеристика.
  2. Виды восприятия, их характеристика.
  3. Виды и формы кредитов, их особенности, характеристика.
  4. Виды мышления, их характеристика.
  5. Виды памяти, их характеристика.
  6. Владение в РЧП. Общая характеристика. Возникновение и прекращение владения. Защита права владения
  7. Волокнистая соединительная ткань. Морфо-функциональная характеристика. Фибробласты и их роль в образовании межклеточного вещества. Строение сухожилий и связок.
  8. Вопрос 27. Рыночные структуры и их характеристика.
  9. Вопрос 30.Понятия нормы и отклонения от нормы в развитии личности. Теории отклонения в развитии личности, типы отклоняющегося развития, их характеристика.
  10. Вопрос 33. (22) сравнительная характеристика, общих форм организации обучения(индивидуальное, фронтальная, групповая.

Важнейшие свойства IL могут быть сформулированы следующим образом:

Объектная ориентированность и применение интерфейсов.

Строгое различие между типами значений и типами ссылок.

Строгая типизация данных.

Обработка ошибок через использование исключений.

Использование атрибутов.

Независимость.NET от языка имеет некоторые практические ограничения. IL неизбежно должен воплощать некоторую определенную методологию программирования, а это означает, что исходный язык также должен быть совместим с этой методологией. Принципы, которым руководствовалась Microsoft при создании IL: классическое объектно-ориентированное программирование с реализацией одиночного наследования классов. В дополнение к классической объектной ориентации IL также вводит понятие интерфейсов, которые впервые были реализованы под Windows с COM.

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

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

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

Объект может вызывать методы другого объекта, написанного на другом языке.

Объекты (или ссылки на объекты) могут передаваться между методами.

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

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

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

Способность межъязыкового взаимодействия.

Сборка мусора.

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

Домены приложений.

Вопрос с типами данных решается в.NET за счет применения общей системы типов (Common Type System - CTS). CTS описывает предопределенные типы данных, которые доступны в IL, поэтому все языки, ориентированные на среду.NET, генерируют компилированный код, который в конечном итоге базируется на этих типах.

CTS описывает не просто примитивные типы данных, а целую богатую иерархию типов, включающую хорошо определенные точки, в которых код может определять свои собственные типы. Иерархическая структура общей системы типов (CTS) отражает объектно-ориентированную методологию одиночного наследования IL

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

Байт-код

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

Другим важным преимуществом байт-кода является его высокая плотность или, иными словами, относительно небольшое число байт, необходимое для представления программы. Измерение образов одной и той же программы, написанной на языке Java и С++ и скомпилированной соответственно в виде байт-кода и машинных инструкций, показывает, что объем машинных команд приблизительно в два раза превышает объем байт-кода. (В некоторых случаях разница может оказаться еще более значительной.) Все это не только уменьшает стоимость хранения приложений на Java, но и существенно повышает пропускную способность любой сетевой архитектуры, что особенно важно при работе в беспроводных сетях или в другой медленной сети.

 




Дата добавления: 2015-01-30; просмотров: 119 | Поможем написать вашу работу | Нарушение авторских прав

1 | <== 2 ==> | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |


lektsii.net - Лекции.Нет - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав