SlideShare une entreprise Scribd logo
1  sur  40
Dynamic Language Runtime Евгений Рыбак.  Tieto
Содержание ,[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object]
Введение Первый анонс: MIX07 –  30  апреля 2007 года
Введение Основные цели : Портирование динамических  языков на платформу . NET Добавление динамических возможностей в существующие  языки (  C#, VB.NET)
[object Object],[object Object]
Runtime Hosting model Language Implementation     Архитектура DLR
Dynamic  Language Runtime IronPython Silverlight Others… VB.NET C# IronRuby Object Binder JavaScript Binder COM Binder Ruby Binder Python Binder     Архитектура
Протокол взаимодействия: 12 общих операций Бинарные операции Работа с методами Работа с индексаторами     Архитектура
Итак,  DLR Имеет 12 общих операций м/д языками Позволяет динамическим и статическим  языкам работать вместе Состоит из 3  компонент Надстройка над  CLR
[object Object],[object Object]
  Ядро  DLR Rules  Binders CallSite DynamicObject ExpandoObject COM Interop Utilities
  Ядро  DLR   1 )   obj –  класс или объект? 2 )   Add –  метод или делегат?   3 )   Нужно ли просматривать иерархию  наследования?   4 )   А что это такое в параметрах?   5 )   Подходят ли эти параметры к методу или делегату? obj. Add (1, 2)
  Ядро  DLR   6 )   Не подходят? А существует ли   преобразование между типами? 7 )  Явное или неявное?   8 )   Пользовательское преобразование?   9 ) ... 10 )   ... obj. Add (1, 2)
CallSite<T> CallSite<T> механизм  к э ширования   операций
CallSite<T> 3  независимых  кэша :   L0:  Делегат  Target L1:   История  CallSite- а L2:   История похожих  CallSite- ов
Ядро  DLR -  Кэширование ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],L0 : Target
Ядро  DLR -  Кэширование ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],L0 : Target L1 :  Update
Ядро  DLR -  Кэширование ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],L0 : Target L1 :  Update L2 :  Update
Ядро  DLR - Binders Binder:  Пример : GetMemenerBinder   obj.Method SetMemberBinder   obj.Property = 100 GetIndexBinder   obj[1]  или  obj[“key”] Binders  -  ключевые компоненты , отвечающие за   выполнение операций
Результат работы  Binder -а – правило ( Rule) X + Y Ядро  DLR - Binders If  (x  is int   && y  is int ) { return   ( int )x + ( int )y   } ( int )x + ( int )y
Ядро  DLR -  Кэширование L0 : Target if  (x  is int   && y  is int ) { return   ( int )x + ( int )y   } site.Update(…)
Ядро  DLR -  Кэширование L0 : Target L1 :  Update Локальная история:     IList<Rule>
Ядро  DLR -  Кэширование L0 : Target L1 :  Update L2 :  Update Глобальная история: IList<Rule>
DynamicObject Точка входа в протокол взаимодействия между языками Облегченная реализация всех  возможных дин амических  операций
Эффективная реализация динамического объекта Позволяет : Добавлять новые/Устанавливать/ Извлекать члены класса ExpandoObject
[object Object],[object Object]
Common Hosting Хостинг  DLR  языков в  . NET  приложениях Например : Выполнение  IronPython, IronRuby кода в  .NET  приложении
Common Hosting Возможности:   1 )   Исполнение фрагмента кода ,[object Object],  3 )  Создание области исполнения ( Scope) ,[object Object],  5 )  Компиляция кода ,[object Object]
Common Hosting Процесс Домены приложения
Common Hosting Домен приложения ScriptRuntime
Common Hosting ScriptRuntime ScriptScope
Common Hosting ScriptRuntime .NET  приложение Script Scope (IronPython)
Common Hosting ScriptRuntime .NET  приложение Script Scope (IronPython)
Common Hosting ДЕМО
Итого  -  Архитектура Часть  II Состоит из 3  компонент Надстройка над  CLR Имеет 12 общих операций м/д языками
Итого  -  Кэширование Часть  II Часть  III Механизм  кэширования 3 независимых  кэша   Возможности  для авторов библиотек
Итого  – Common Hosting Часть  II Часть  III Часть  VI Взаимодействие .NET  и динамических языков  ( IronPython)
[object Object],[object Object]
СПАСИБО ЗА ВНИМАНИЕ http://belarusdotnet.org http://belarusdotnet.org/blogs/Engler

Contenu connexe

Tendances

Anton Alexanenkov - Tor and Botnet C&C
Anton Alexanenkov -  Tor and Botnet C&C Anton Alexanenkov -  Tor and Botnet C&C
Anton Alexanenkov - Tor and Botnet C&C DefconRussia
 
Роман Иманкулов-«Быстрые и масштабируемые приложения с Sync API»
Роман Иманкулов-«Быстрые и масштабируемые приложения с Sync API»Роман Иманкулов-«Быстрые и масштабируемые приложения с Sync API»
Роман Иманкулов-«Быстрые и масштабируемые приложения с Sync API»Tanya Denisyuk
 
Design by Contract
Design by ContractDesign by Contract
Design by ContractKiev ALT.NET
 
Kirill A Korinskiy Rit2010 No Sql Storage
Kirill A  Korinskiy Rit2010 No Sql StorageKirill A  Korinskiy Rit2010 No Sql Storage
Kirill A Korinskiy Rit2010 No Sql Storagerit2010
 
Devconf 2014 Трассировка событий при логировании
Devconf 2014 Трассировка событий при логированииDevconf 2014 Трассировка событий при логировании
Devconf 2014 Трассировка событий при логированииAlex Popov
 
Семинар 10. Параллельное программирование на MPI (часть 3)
Семинар 10. Параллельное программирование на MPI (часть 3)Семинар 10. Параллельное программирование на MPI (часть 3)
Семинар 10. Параллельное программирование на MPI (часть 3)Mikhail Kurnosov
 
Архитектура хранения фотографий в Badoo
Архитектура хранения фотографий в BadooАрхитектура хранения фотографий в Badoo
Архитектура хранения фотографий в BadooBadoo Development
 
Cocoa Networking
Cocoa NetworkingCocoa Networking
Cocoa Networkingguest57eb8a
 
Andrey Borodin "Architecture of online backup for various DBMS"
Andrey Borodin "Architecture of online backup for various DBMS"Andrey Borodin "Architecture of online backup for various DBMS"
Andrey Borodin "Architecture of online backup for various DBMS"Fwdays
 
"Внутренности" CPython, часть II
"Внутренности" CPython, часть II"Внутренности" CPython, часть II
"Внутренности" CPython, часть IIPython Meetup
 
Инфрраструктура ЦОД - интерконнект от Qlogik
Инфрраструктура ЦОД - интерконнект от QlogikИнфрраструктура ЦОД - интерконнект от Qlogik
Инфрраструктура ЦОД - интерконнект от QlogikExpolink
 
To Go или не to Go
To Go или не to GoTo Go или не to Go
To Go или не to GoIvan Zezyulya
 
Александр Крижановский, NatSys Lab
Александр Крижановский, NatSys LabАлександр Крижановский, NatSys Lab
Александр Крижановский, NatSys LabOntico
 

Tendances (17)

Anton Alexanenkov - Tor and Botnet C&C
Anton Alexanenkov -  Tor and Botnet C&C Anton Alexanenkov -  Tor and Botnet C&C
Anton Alexanenkov - Tor and Botnet C&C
 
Роман Иманкулов-«Быстрые и масштабируемые приложения с Sync API»
Роман Иманкулов-«Быстрые и масштабируемые приложения с Sync API»Роман Иманкулов-«Быстрые и масштабируемые приложения с Sync API»
Роман Иманкулов-«Быстрые и масштабируемые приложения с Sync API»
 
Design by Contract
Design by ContractDesign by Contract
Design by Contract
 
Kirill A Korinskiy Rit2010 No Sql Storage
Kirill A  Korinskiy Rit2010 No Sql StorageKirill A  Korinskiy Rit2010 No Sql Storage
Kirill A Korinskiy Rit2010 No Sql Storage
 
Devconf 2014 Трассировка событий при логировании
Devconf 2014 Трассировка событий при логированииDevconf 2014 Трассировка событий при логировании
Devconf 2014 Трассировка событий при логировании
 
Семинар 10. Параллельное программирование на MPI (часть 3)
Семинар 10. Параллельное программирование на MPI (часть 3)Семинар 10. Параллельное программирование на MPI (часть 3)
Семинар 10. Параллельное программирование на MPI (часть 3)
 
Cloud Haskell. Александр Вершилов
Cloud Haskell. Александр ВершиловCloud Haskell. Александр Вершилов
Cloud Haskell. Александр Вершилов
 
Архитектура хранения фотографий в Badoo
Архитектура хранения фотографий в BadooАрхитектура хранения фотографий в Badoo
Архитектура хранения фотографий в Badoo
 
Переход на Php 7 и итоги
Переход на Php 7 и итогиПереход на Php 7 и итоги
Переход на Php 7 и итоги
 
Cocoa Networking
Cocoa NetworkingCocoa Networking
Cocoa Networking
 
Andrey Borodin "Architecture of online backup for various DBMS"
Andrey Borodin "Architecture of online backup for various DBMS"Andrey Borodin "Architecture of online backup for various DBMS"
Andrey Borodin "Architecture of online backup for various DBMS"
 
"Внутренности" CPython, часть II
"Внутренности" CPython, часть II"Внутренности" CPython, часть II
"Внутренности" CPython, часть II
 
Инфрраструктура ЦОД - интерконнект от Qlogik
Инфрраструктура ЦОД - интерконнект от QlogikИнфрраструктура ЦОД - интерконнект от Qlogik
Инфрраструктура ЦОД - интерконнект от Qlogik
 
Кратко о Mac OS X
Кратко о Mac OS XКратко о Mac OS X
Кратко о Mac OS X
 
To Go или не to Go
To Go или не to GoTo Go или не to Go
To Go или не to Go
 
OpenACC short review
OpenACC short reviewOpenACC short review
OpenACC short review
 
Александр Крижановский, NatSys Lab
Александр Крижановский, NatSys LabАлександр Крижановский, NatSys Lab
Александр Крижановский, NatSys Lab
 

En vedette

Minsk Web Appl 190509
Minsk Web Appl 190509Minsk Web Appl 190509
Minsk Web Appl 190509sef2009
 
вопросы
вопросывопросы
вопросыsef2009
 
Sef Ikhelis
Sef IkhelisSef Ikhelis
Sef Ikhelissef2009
 
Se Education Ukraine 2009 05 20 Im
Se Education Ukraine 2009 05 20 ImSe Education Ukraine 2009 05 20 Im
Se Education Ukraine 2009 05 20 Imsef2009
 
Bibichev Sef09 Analyst In Agile
Bibichev Sef09 Analyst In AgileBibichev Sef09 Analyst In Agile
Bibichev Sef09 Analyst In Agilesef2009
 
Evaluation Of Code Quality
Evaluation Of Code QualityEvaluation Of Code Quality
Evaluation Of Code Qualitysef2009
 
технопарк бнту метолит
технопарк бнту метолиттехнопарк бнту метолит
технопарк бнту метолитsef2009
 
индустрия разработки по республики беларусь
индустрия разработки по республики беларусьиндустрия разработки по республики беларусь
индустрия разработки по республики беларусьsef2009
 
Urazbaev
UrazbaevUrazbaev
Urazbaevsef2009
 
интеграция приложений
интеграция приложенийинтеграция приложений
интеграция приложенийsef2009
 
Sef Tech Customer Bezugliy Presentation
Sef Tech Customer Bezugliy PresentationSef Tech Customer Bezugliy Presentation
Sef Tech Customer Bezugliy Presentationsef2009
 
Sef презентация
Sef презентацияSef презентация
Sef презентацияsef2009
 
персональные риски аналитика
персональные риски аналитикаперсональные риски аналитика
персональные риски аналитикаsef2009
 
риски тестирования
риски тестированияриски тестирования
риски тестированияsef2009
 
александров обучение в сфере Software Engineering
александров   обучение в сфере Software Engineeringалександров   обучение в сфере Software Engineering
александров обучение в сфере Software Engineeringsef2009
 
Mordovich Proto Presentation
Mordovich Proto PresentationMordovich Proto Presentation
Mordovich Proto Presentationsef2009
 
Amayorov Hindex
Amayorov HindexAmayorov Hindex
Amayorov Hindexsef2009
 
Silverlight 3.0 Sef
Silverlight 3.0   SefSilverlight 3.0   Sef
Silverlight 3.0 Sefsef2009
 
козюминский в.д. презентация доклада
козюминский в.д.  презентация докладакозюминский в.д.  презентация доклада
козюминский в.д. презентация докладаsef2009
 
Sw Team Leaderships
Sw Team LeadershipsSw Team Leaderships
Sw Team Leadershipssef2009
 

En vedette (20)

Minsk Web Appl 190509
Minsk Web Appl 190509Minsk Web Appl 190509
Minsk Web Appl 190509
 
вопросы
вопросывопросы
вопросы
 
Sef Ikhelis
Sef IkhelisSef Ikhelis
Sef Ikhelis
 
Se Education Ukraine 2009 05 20 Im
Se Education Ukraine 2009 05 20 ImSe Education Ukraine 2009 05 20 Im
Se Education Ukraine 2009 05 20 Im
 
Bibichev Sef09 Analyst In Agile
Bibichev Sef09 Analyst In AgileBibichev Sef09 Analyst In Agile
Bibichev Sef09 Analyst In Agile
 
Evaluation Of Code Quality
Evaluation Of Code QualityEvaluation Of Code Quality
Evaluation Of Code Quality
 
технопарк бнту метолит
технопарк бнту метолиттехнопарк бнту метолит
технопарк бнту метолит
 
индустрия разработки по республики беларусь
индустрия разработки по республики беларусьиндустрия разработки по республики беларусь
индустрия разработки по республики беларусь
 
Urazbaev
UrazbaevUrazbaev
Urazbaev
 
интеграция приложений
интеграция приложенийинтеграция приложений
интеграция приложений
 
Sef Tech Customer Bezugliy Presentation
Sef Tech Customer Bezugliy PresentationSef Tech Customer Bezugliy Presentation
Sef Tech Customer Bezugliy Presentation
 
Sef презентация
Sef презентацияSef презентация
Sef презентация
 
персональные риски аналитика
персональные риски аналитикаперсональные риски аналитика
персональные риски аналитика
 
риски тестирования
риски тестированияриски тестирования
риски тестирования
 
александров обучение в сфере Software Engineering
александров   обучение в сфере Software Engineeringалександров   обучение в сфере Software Engineering
александров обучение в сфере Software Engineering
 
Mordovich Proto Presentation
Mordovich Proto PresentationMordovich Proto Presentation
Mordovich Proto Presentation
 
Amayorov Hindex
Amayorov HindexAmayorov Hindex
Amayorov Hindex
 
Silverlight 3.0 Sef
Silverlight 3.0   SefSilverlight 3.0   Sef
Silverlight 3.0 Sef
 
козюминский в.д. презентация доклада
козюминский в.д.  презентация докладакозюминский в.д.  презентация доклада
козюминский в.д. презентация доклада
 
Sw Team Leaderships
Sw Team LeadershipsSw Team Leaderships
Sw Team Leaderships
 

Similaire à Evgeny Rybak Presentation

Dynamic Language Runtime
Dynamic Language RuntimeDynamic Language Runtime
Dynamic Language RuntimeGetDev.NET
 
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)Pavel Tsukanov
 
Как это будет: ASP.NET Core
Как это будет: ASP.NET CoreКак это будет: ASP.NET Core
Как это будет: ASP.NET CoreDotNetConf
 
Другая виртуализация
Другая виртуализацияДругая виртуализация
Другая виртуализацияYandex
 
Сетевой инженер 2.0. Что нужно знать о программируемости в корпоративной сети?
Сетевой инженер 2.0. Что нужно знать о программируемости в корпоративной сети?Сетевой инженер 2.0. Что нужно знать о программируемости в корпоративной сети?
Сетевой инженер 2.0. Что нужно знать о программируемости в корпоративной сети?Cisco Russia
 
Руслан Гроховецкий "Как Python стал делать погоду в Яндексе"
Руслан Гроховецкий "Как Python стал делать погоду в Яндексе"Руслан Гроховецкий "Как Python стал делать погоду в Яндексе"
Руслан Гроховецкий "Как Python стал делать погоду в Яндексе"Yandex
 
Вячеслав Бахмутов
Вячеслав БахмутовВячеслав Бахмутов
Вячеслав БахмутовCodeFest
 
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел КрынецкийJSC “Arcadia Inc”
 
DEV Labs 2013. Can C++ Code Effeciency Be Comparable to That of Middle-Level ...
DEV Labs 2013. Can C++ Code Effeciency Be Comparable to That of Middle-Level ...DEV Labs 2013. Can C++ Code Effeciency Be Comparable to That of Middle-Level ...
DEV Labs 2013. Can C++ Code Effeciency Be Comparable to That of Middle-Level ...Alex V. Petrov
 
Java осень 2014 занятие 6
Java осень 2014 занятие 6Java осень 2014 занятие 6
Java осень 2014 занятие 6Technopark
 
Программируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusПрограммируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusCisco Russia
 
Теория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциямТеория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциямSergey Staroletov
 
Путь к чистому и компактному коду исполняемых спецификаций
Путь к чистому и компактному коду исполняемых спецификацийПуть к чистому и компактному коду исполняемых спецификаций
Путь к чистому и компактному коду исполняемых спецификацийVagif Abilov
 
Desktop app based on node js and html5
Desktop app based on node js and html5Desktop app based on node js and html5
Desktop app based on node js and html5Provectus
 
Использование SOA для построения сложных веб проектов - Виталий Глибин, PyCon...
Использование SOA для построения сложных веб проектов - Виталий Глибин, PyCon...Использование SOA для построения сложных веб проектов - Виталий Глибин, PyCon...
Использование SOA для построения сложных веб проектов - Виталий Глибин, PyCon...it-people
 
Лекция 6
Лекция 6Лекция 6
Лекция 6itc73
 

Similaire à Evgeny Rybak Presentation (20)

DLR Hosting
DLR HostingDLR Hosting
DLR Hosting
 
Dynamic Language Runtime
Dynamic Language RuntimeDynamic Language Runtime
Dynamic Language Runtime
 
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
 
Sivko
SivkoSivko
Sivko
 
Breaking logs
Breaking logsBreaking logs
Breaking logs
 
Как это будет: ASP.NET Core
Как это будет: ASP.NET CoreКак это будет: ASP.NET Core
Как это будет: ASP.NET Core
 
Другая виртуализация
Другая виртуализацияДругая виртуализация
Другая виртуализация
 
Сетевой инженер 2.0. Что нужно знать о программируемости в корпоративной сети?
Сетевой инженер 2.0. Что нужно знать о программируемости в корпоративной сети?Сетевой инженер 2.0. Что нужно знать о программируемости в корпоративной сети?
Сетевой инженер 2.0. Что нужно знать о программируемости в корпоративной сети?
 
Руслан Гроховецкий "Как Python стал делать погоду в Яндексе"
Руслан Гроховецкий "Как Python стал делать погоду в Яндексе"Руслан Гроховецкий "Как Python стал делать погоду в Яндексе"
Руслан Гроховецкий "Как Python стал делать погоду в Яндексе"
 
Вячеслав Бахмутов
Вячеслав БахмутовВячеслав Бахмутов
Вячеслав Бахмутов
 
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
 
DEV Labs 2013. Can C++ Code Effeciency Be Comparable to That of Middle-Level ...
DEV Labs 2013. Can C++ Code Effeciency Be Comparable to That of Middle-Level ...DEV Labs 2013. Can C++ Code Effeciency Be Comparable to That of Middle-Level ...
DEV Labs 2013. Can C++ Code Effeciency Be Comparable to That of Middle-Level ...
 
Java осень 2014 занятие 6
Java осень 2014 занятие 6Java осень 2014 занятие 6
Java осень 2014 занятие 6
 
Программируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusПрограммируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco Nexus
 
Теория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциямТеория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциям
 
Путь к чистому и компактному коду исполняемых спецификаций
Путь к чистому и компактному коду исполняемых спецификацийПуть к чистому и компактному коду исполняемых спецификаций
Путь к чистому и компактному коду исполняемых спецификаций
 
C# 3.0
C# 3.0C# 3.0
C# 3.0
 
Desktop app based on node js and html5
Desktop app based on node js and html5Desktop app based on node js and html5
Desktop app based on node js and html5
 
Использование SOA для построения сложных веб проектов - Виталий Глибин, PyCon...
Использование SOA для построения сложных веб проектов - Виталий Глибин, PyCon...Использование SOA для построения сложных веб проектов - Виталий Глибин, PyCon...
Использование SOA для построения сложных веб проектов - Виталий Глибин, PyCon...
 
Лекция 6
Лекция 6Лекция 6
Лекция 6
 

Plus de sef2009

распознавание для Web
распознавание для Webраспознавание для Web
распознавание для Websef2009
 
ксуп кейс
ксуп кейсксуп кейс
ксуп кейсsef2009
 
блинов Java Belarus 2009
блинов   Java Belarus 2009блинов   Java Belarus 2009
блинов Java Belarus 2009sef2009
 
Sef Sivakou Tezisy
Sef Sivakou TezisySef Sivakou Tezisy
Sef Sivakou Tezisysef2009
 
Sef Sivakou Prezentacia
Sef Sivakou PrezentaciaSef Sivakou Prezentacia
Sef Sivakou Prezentaciasef2009
 
Sef Sivakou Doklad
Sef Sivakou DokladSef Sivakou Doklad
Sef Sivakou Dokladsef2009
 
Sef Kolotygin.V4
Sef Kolotygin.V4Sef Kolotygin.V4
Sef Kolotygin.V4sef2009
 
Sef 2009
Sef 2009Sef 2009
Sef 2009sef2009
 
Sef 2009 Itsm
Sef 2009 ItsmSef 2009 Itsm
Sef 2009 Itsmsef2009
 
Alexandrov Alex Quality
Alexandrov Alex QualityAlexandrov Alex Quality
Alexandrov Alex Qualitysef2009
 
Denisv Teamwork April 23
Denisv Teamwork April 23Denisv Teamwork April 23
Denisv Teamwork April 23sef2009
 
Content Migration Framework
Content Migration FrameworkContent Migration Framework
Content Migration Frameworksef2009
 
25.04.09 Sidorov
25.04.09 Sidorov25.04.09 Sidorov
25.04.09 Sidorovsef2009
 
21 05 2009 Grigorash Surova Sef
21 05 2009 Grigorash Surova Sef21 05 2009 Grigorash Surova Sef
21 05 2009 Grigorash Surova Sefsef2009
 
якимович нагрузочное тестирование клиент серверных приложений
якимович нагрузочное тестирование клиент серверных приложенийякимович нагрузочное тестирование клиент серверных приложений
якимович нагрузочное тестирование клиент серверных приложенийsef2009
 
технологии качества возврат инвестиций
технологии качества   возврат инвестицийтехнологии качества   возврат инвестиций
технологии качества возврат инвестицийsef2009
 
Sef Trubach V1.2
Sef Trubach V1.2Sef Trubach V1.2
Sef Trubach V1.2sef2009
 
Sef Streluk Agile
Sef Streluk AgileSef Streluk Agile
Sef Streluk Agilesef2009
 

Plus de sef2009 (20)

распознавание для Web
распознавание для Webраспознавание для Web
распознавание для Web
 
ксуп кейс
ксуп кейсксуп кейс
ксуп кейс
 
блинов Java Belarus 2009
блинов   Java Belarus 2009блинов   Java Belarus 2009
блинов Java Belarus 2009
 
Sef Sivakou Tezisy
Sef Sivakou TezisySef Sivakou Tezisy
Sef Sivakou Tezisy
 
Sef Sivakou Prezentacia
Sef Sivakou PrezentaciaSef Sivakou Prezentacia
Sef Sivakou Prezentacia
 
Sef Sivakou Doklad
Sef Sivakou DokladSef Sivakou Doklad
Sef Sivakou Doklad
 
Sef
SefSef
Sef
 
Sef Kolotygin.V4
Sef Kolotygin.V4Sef Kolotygin.V4
Sef Kolotygin.V4
 
Sef 2009
Sef 2009Sef 2009
Sef 2009
 
Sef 2009 Itsm
Sef 2009 ItsmSef 2009 Itsm
Sef 2009 Itsm
 
Alexandrov Alex Quality
Alexandrov Alex QualityAlexandrov Alex Quality
Alexandrov Alex Quality
 
Denisv Teamwork April 23
Denisv Teamwork April 23Denisv Teamwork April 23
Denisv Teamwork April 23
 
Content Migration Framework
Content Migration FrameworkContent Migration Framework
Content Migration Framework
 
25.04.09 Sidorov
25.04.09 Sidorov25.04.09 Sidorov
25.04.09 Sidorov
 
21 05 2009 Grigorash Surova Sef
21 05 2009 Grigorash Surova Sef21 05 2009 Grigorash Surova Sef
21 05 2009 Grigorash Surova Sef
 
якимович нагрузочное тестирование клиент серверных приложений
якимович нагрузочное тестирование клиент серверных приложенийякимович нагрузочное тестирование клиент серверных приложений
якимович нагрузочное тестирование клиент серверных приложений
 
технологии качества возврат инвестиций
технологии качества   возврат инвестицийтехнологии качества   возврат инвестиций
технологии качества возврат инвестиций
 
Sef Trubach V1.2
Sef Trubach V1.2Sef Trubach V1.2
Sef Trubach V1.2
 
Sef Streluk Agile
Sef Streluk AgileSef Streluk Agile
Sef Streluk Agile
 
Sef2009
Sef2009Sef2009
Sef2009
 

Evgeny Rybak Presentation

  • 1. Dynamic Language Runtime Евгений Рыбак. Tieto
  • 2.
  • 3.
  • 4. Введение Первый анонс: MIX07 – 30 апреля 2007 года
  • 5. Введение Основные цели : Портирование динамических языков на платформу . NET Добавление динамических возможностей в существующие языки ( C#, VB.NET)
  • 6.
  • 7. Runtime Hosting model Language Implementation Архитектура DLR
  • 8. Dynamic Language Runtime IronPython Silverlight Others… VB.NET C# IronRuby Object Binder JavaScript Binder COM Binder Ruby Binder Python Binder Архитектура
  • 9. Протокол взаимодействия: 12 общих операций Бинарные операции Работа с методами Работа с индексаторами Архитектура
  • 10. Итак, DLR Имеет 12 общих операций м/д языками Позволяет динамическим и статическим языкам работать вместе Состоит из 3 компонент Надстройка над CLR
  • 11.
  • 12. Ядро DLR Rules Binders CallSite DynamicObject ExpandoObject COM Interop Utilities
  • 13. Ядро DLR 1 ) obj – класс или объект? 2 ) Add – метод или делегат? 3 ) Нужно ли просматривать иерархию наследования? 4 ) А что это такое в параметрах? 5 ) Подходят ли эти параметры к методу или делегату? obj. Add (1, 2)
  • 14. Ядро DLR 6 ) Не подходят? А существует ли преобразование между типами? 7 ) Явное или неявное? 8 ) Пользовательское преобразование? 9 ) ... 10 ) ... obj. Add (1, 2)
  • 15. CallSite<T> CallSite<T> механизм к э ширования операций
  • 16. CallSite<T> 3 независимых кэша : L0: Делегат Target L1: История CallSite- а L2: История похожих CallSite- ов
  • 17.
  • 18.
  • 19.
  • 20. Ядро DLR - Binders Binder: Пример : GetMemenerBinder obj.Method SetMemberBinder obj.Property = 100 GetIndexBinder obj[1] или obj[“key”] Binders - ключевые компоненты , отвечающие за выполнение операций
  • 21. Результат работы Binder -а – правило ( Rule) X + Y Ядро DLR - Binders If (x is int && y is int ) { return ( int )x + ( int )y } ( int )x + ( int )y
  • 22. Ядро DLR - Кэширование L0 : Target if (x is int && y is int ) { return ( int )x + ( int )y } site.Update(…)
  • 23. Ядро DLR - Кэширование L0 : Target L1 : Update Локальная история: IList<Rule>
  • 24. Ядро DLR - Кэширование L0 : Target L1 : Update L2 : Update Глобальная история: IList<Rule>
  • 25. DynamicObject Точка входа в протокол взаимодействия между языками Облегченная реализация всех возможных дин амических операций
  • 26. Эффективная реализация динамического объекта Позволяет : Добавлять новые/Устанавливать/ Извлекать члены класса ExpandoObject
  • 27.
  • 28. Common Hosting Хостинг DLR языков в . NET приложениях Например : Выполнение IronPython, IronRuby кода в .NET приложении
  • 29.
  • 30. Common Hosting Процесс Домены приложения
  • 31. Common Hosting Домен приложения ScriptRuntime
  • 33. Common Hosting ScriptRuntime .NET приложение Script Scope (IronPython)
  • 34. Common Hosting ScriptRuntime .NET приложение Script Scope (IronPython)
  • 36. Итого - Архитектура Часть II Состоит из 3 компонент Надстройка над CLR Имеет 12 общих операций м/д языками
  • 37. Итого - Кэширование Часть II Часть III Механизм кэширования 3 независимых кэша Возможности для авторов библиотек
  • 38. Итого – Common Hosting Часть II Часть III Часть VI Взаимодействие .NET и динамических языков ( IronPython)
  • 39.
  • 40. СПАСИБО ЗА ВНИМАНИЕ http://belarusdotnet.org http://belarusdotnet.org/blogs/Engler