Начинаем программировать на Basic ... Concurrent Basic

yuryserdyuk (6 пост(а)) 07.04.2009 16:00

На международной конференции по объектно-ориентированному программированию OOPSLA’2008, состоявшейся в г. Нэшвилл, шт. Теннесси, США, октябрь 2008г., фирма Microsoft анонсировала расширение языка Visual Basic 9.0 под названием Concurrent Basic (CB). В некоторых изданиях, CB уже охарактеризовали как “возможное будущее направление, по которому пойдет развитие Visual Basiс”. В чем же тут дело? 

Более точно, на вышеупомянутой конференции был представлен доклад Claudio Russo из Microsoft Research (Cambridge, United Kingdom) под названиемJoin patterns for Visual Basic”. Базовые идеи этого доклада представляет следующий абзац:

"Concurrent Basic extends Visual Basic with stylish asynchronous concurrency constructs derived from the join calculus. Our design advances earlier Microsoft Research work on Polyphonic C#, Comega and the Joins Library.” 

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

История же эта началась с FOOL 9 :-) - 9-ой международной конференции “Foundations of Object-Oriented Languages” (январь 2002г.), на которой, опять же, люди из Microsoft Research, а именно, Nick Benton, Luca Cardelli, Сedric Fournet предложили новую модель асинхронного (читай, параллельного) программирования, базирующуюся на определенной формальной математической модели – join-исчислении. 

Языки программирования, на самом деле, являются довольно консервативной областью – всё здесь, или, почти всё, уже изобретено, а потому появление новой замечательной модели есть вещь неординарная. Сам математический формализм – join-исчисление – по своей сути, не ориентирован на какой-либо конкретный язык программирования, а потому применим как к функциональным, так и к императивным/объектно-ориентированным языкам. Результатами такого применения среди функциональных языков являются языки Jocaml  и Funnel, а соответствующими расширениями объектно-ориентированных языков Java и C# стали Join Java и Polyphonic C#. Последний из названных языков стал впоследствии частью языка Сomega, другая часть которого известна сегодня как LINQ. 

Новая предложенная модель хоть и отличается от концепций параллелизма, имевшихся до сих пор, на самом деле, не так уж и сложна. Тем не менее, компания Microsoft из языка Comega внедрила поначалу в практику только LINQ, а в качестве средства параллельного программирования предложила еще одну реинкарнацию концепции потоков – библиотеку Task Parallel Library (TPL). Возможно, что в этом случае Microsoft посчитала, что программистское сообщество не готово к переходу на концептуально новый параллельный язык программирования, предложив ему еще одну библиотеку. 

Однако, появление Concurrent Basic свидетельствует о том, что Microsoft, возможно, всё-таки начала внедрять эту модель, зайдя со стороны Basic’а – воспримет ли новые идеи, для начала, Basic-сообщество? 

О самих ключевых идеях Concurrent Basic’а планирую рассказать в ближайших моих постах. В частности, на CB имеется реализация известной игры Конвэя “Жизнь”, которая являлась одним из заданий конкурса Intel Threading Challenge 2008. Решение всех заданий этого конкурса на языке MC#, который также принадлежит к группе языков, базирующихся на join-исчислении, включены в дистрибутив новой версии MC# 2.1.

Категории: Intel Software Network, Академическое сообщество, Параллельное программирование, Разработка софта

Комментарии (3)

07.04.2009 07:24

Dmitry Oganezov (Intel)
Всего баллов:
16,204
Статусных баллов:
16,204
Community Manager
Welcome Back, Юрий! Очень рад снова видеть ваши посты в блоге ISN!!! :)

Одно плохо - информации "на-гора" вы выдаете столько, что человеку со средними способностями, типа меня, нужна минимум неделя, чтобы все это переварить :). Однако, может это и к лучшему - по крайней мере теперь я вижу, насколько большой пласт культуры прошел мимо меня. А что обидно - как раз в той области, которую я всегда считал важной и себя интересной для себя (это насчет MRTE).

Что ж, как говорится - будем посмотреть! К тому же есть у меня одна задачка, которую было бы полезно на CB прогнать.

То, что вы включили задачки Threading Challenge 2008 в пакет MC# 2.1 - это действительно круто! Клэй уже знает?

Хей, парни из TBB - слабо в пакет TBB 2.2 положить лучшие задания, использующие TBB? А?
08.04.2009 00:01

Marianna Svetlosanova (Intel)
Всего баллов:
5,270
Статусных баллов:
5,270
Community Manager
C возвращением, Юрий, давненько вас не было видно \ слышно :)

Я вам письмецо отправляла, еще в январе... могу продублировать, если не получали :) А то залежалась у меня подкова программиста для вас…
08.04.2009 03:59

Alexey Kukanov (Intel)
Всего баллов:
13,396
Статусных баллов:
13,396
черный пояс
Дим, слабо :(

Обратная ссылка (0)


Оставить комментарий  

To obtain technical support, please go to Software Support.
Имя (обязательно)*

Электронная почта (обязательно; не будет отображено на этой странице)*

Ваш URL-адрес (необязательно)


Комментарий*