21.09.2016

Проект Бродіння

Original: http://www.csc.lsu.edu/~gb/Brew/index.html

Об’єктно-орієнтовані мови програмування забезпечують механізми абстракції, які допомагають з структуризації великого програмного забезпечення. Багато комерційних програми, такі як настільні додатки або ігри, виробляються в стилі OO, або в ГО-мові або за допомогою ручного кодування методів ГО мовою, таких як C. Однак, як наш аналіз OO шаблонів проектування показує, паркані механізми, що надаються з найбільш широко використовуваних мов OO C ++ і Java все ще недостатньо. Стиль об’єктно-орієнтоване програмування є підходящим механізмом мову для структурування даних і, якщо програмне забезпечення, як очікується, розвиватися уявленнями даних рафінування. Проте, OO мови не забезпечують адекватну підтримку для впровадження нових абстракцій заднім числом або, якщо програмне забезпечення розвивається, додаючи функціональні можливості для стабільної структури даних. Багато OO шаблони проектування можна вважати обхідні для додатка стилю OO проблем, які більш адекватно вирішені в іншому, наприклад, функціональний, стиль програмування.


Ми розробили розширення C ++ з інтерфейсами (тоді підпису) і структурних підтипів, які дають можливість додавання абстракцій заднім числом, а також розширення Java з структурної підтипів. Наше розширення C ++ не було частиною дистрибутива GCC до версії 2.95. Ми реалізували структурну підтипів для Java в якості розширення Sun JDK 1.1.5 компілятора. В даний час ми працюємо над створенням мови Brew як розширення Java з об’єктною моделлю, заснованої на аналізі шаблонів проектування і реалізації компілятора для мови в Brew. До Brew і компілятор Brew мало далеко розвинений, ми обрамлення результати наших досліджень в контексті Java. Для еволюціонує програмного забезпечення шляхом додавання функціональності до стабільної структури даних, було б бажано мати підтримку мультіметодов мовою. Ми розробили розширення Java зі зворотною силою абстракції і мультіметодов, називається Half & Half, і в даний час працюють над її реалізацією. Ми показали, що мультіметоди разом з закриває механізмом дозволяє програмувати в функціональному стилі, аналогічної в ML.

При розробці програмного забезпечення OO, необхідно забезпечити, щоб методи на об’єкті називаються в правильному порядку. Ми розробили мовну підтримку для визначення протоколів об’єктів в оголошеннях класу і інтерфейсу в Java. Ця мова підтримка дозволяє компілятору перевірити, що протокол класу задовольняє протоколу інтерфейсу і для генерації коду налагодження для моніторингу порядку виклику методу під час виконання. Ми здійснюємо підтримку протоколів, як розширення компілятора Sun JDK. Ми також працюємо на підтримку мови для мобільності. Мобільні бібліотеки об’єктів для Java, такі як бібліотеки Aglets не дозволяють мігрувати стан виконання методів, які виконують в якості агента. Ми розробили механізм перекладу і мобільних потоків, які дозволяють багато-агент мігрувати з усіма його стану виконання. Ми реалізували перекладач як препроцесор в компілятор Brew. Ми використовуємо ці багатопотокові кошти для планування наукових додатків на настільному сітці, дивіться веб-сторінку Органічна Грид.

В даний час ми працюємо над реалізацією протоколів і наше розширення Java з мультіметодов в OpenJDK компілятором, щоб служити в якості платформи для майбутніх досліджень мови дизайну.


Співавтори

Костянтин Льойфер, кафедра комп’ютерних наук, Університету Лойоли в Чикаго
Вінсент Ф. Руссо, Гобі
Міхал Янг, кафедра комп’ютерних та Info. Sci., Університет штату Орегон

Колишні студенти

Сергій Буткевич, Rentaissance Технології
Арджав Чакраварті (PhD, червень 2004 року), Dasra
Ронні Гілкі (MS, травень 2012)
Джейсон О. Холлстром, Школа обчислювальної техніки, Університет Клемсона
Мартін Янше (MS, березень 2004 року), Symptotic
Брайан Ларкінс, кафедра комп’ютерних наук, Прибережні Кароліна Університет
Пий Лу, Microsoft
Крістофер Д. Пайзерт, Белажіо
Марко Ренедо, Банк Америки
Лакшмі (Сіндху) Ріммалапуді (MS, грудень 2008 р), активні мережі
Даршат Шах, Microsoft
Арчана Валабханені (MS, грудень 2012 року), Revolverdocs / MightyJunn Productions
Хуаджин Ван (MS, грудень 2001 рік), Amazon.com

Програмне забезпечення

Java з структурної підтипами
Розширення JDK 1.0.2.
C ++ Підписи
Доступний в GNU G ++ версії 2.95.

Публікації


2002

Половина & Половина: Множинна диспетчеризація та Ретроактивне Водозабір для Java
Г. Баумгартнер, М. Jansche, К. Льойфер. Технічний звіт № OSU-CISRC-5/01-TR08, кафедра комп’ютерних та інформаційних наук, Університет штату Огайо, оновлено березні 2002 року.

2001

Підтримка функціонального програмування в Brew
Г. Баумгартнер, М. Jansche, C.D. Peisert. У Kei Девіс, Янніс Smaragdakis Йорг Striegnitz: Матеріали з програмування Multiparadigm з об’єктно-орієнтовані мови, 1-го Міжнародного семінару (MPOOL ’01), Будапешт, Угорщина, 18 червня 2001 року, публікація серії Джона фон Неймана Інститут обчислювальної техніки, Vol , 7, стор. 111-125.
Надійність Завдяки сильно Рухливість
Х. Ван, J. Холлстром, Г. Баумгартнер. Праці 7-й ECOOP семінар по мобільної системи об’єкта: Розробка надійних і високопродуктивних додатків довіри агент (MOS ’01), Будапешт, Угорщина, 18 червня 2001 року, з 1-13 ..

2000

Safe Структурний Відповідність для Java
К. Льойфер, Г. Баумгартнер, В.Ф. Руссо. Комп’ютер Journal, Vol. 43, № 6, 2000., стор. 469-481. Також є Технічний звіт OSU-CISRC-6/98-TR20, кафедра обчислювальної техніки та інформатики, штату Огайо університету, червень 1998 року.
Укладач і підтримка інструмент для налагодження протоколів об’єктів
С. Буткевич, М. Renedo, Г. Баумгартнер, М. Янг. Праці 8-й Міжнародний симпозіум по Основи програмної інженерії (FSE-8 / ACM SIGSoft 2000), Сан-Дієго, Каліфорнія, 6-10 листопада 2000, с. 50-59.
Укладач і підтримка інструмент для налагодження протоколів об’єктів
С. Буткевич, М. Renedo, Г. Баумгартнер, М. Янг. Технічний звіт OSU-CISRC-3/00-TR10, кафедра комп’ютерних та інформаційних наук, Державний університет Огайо, березень 2000. Покращена версія з’явиться в Праці 8-го Міжнародного симпозіуму по Основи програмної інженерії (FSE-8 / ACM SIGSoft 2000), Сан-Дієго, Каліфорнія, 6-10 листопада 2000 року, стор. 50-59.

1 998

Безпечний Структурний Відповідність для Java
К. Льойфер, Г. Баумгартнер, В.Ф. Руссо. Технічний звіт OSU-CISRC-6/98 TR20, кафедра комп’ютерних та інформаційних наук, Державний університет Огайо, червень 1998 року.

1 997

Реалізація Підписи для C ++
Г. Баумгартнер, В.Ф. Руссо. ACM Угоди з мов програмування і системам (TOPLAS), Vol. 19, № 1, січень 1997 року, стор. 153-187.

1996

Про взаємодію об’єктно-орієнтованого проектування шаблонів і мов програмування
Г. Баумгартнер, К. Läufer, В.Ф. Руссо. Технічний звіт CSD-TR-96-020, кафедра комп’ютерних наук, Університет Пердью, лютий 1996 року.

1995

Підписи: мова Розширення для поліпшення типу абстракції і підтип поліморфізм в C ++
Г. Баумгартнер, В.Ф. Руссо. Програмне забезпечення – практика і досвід, Vol. 25, № 8, стор. 863-889, серпень 1995. Також є технічний звіт CSD-TR-95-051, кафедра комп’ютерних наук, Університет Пердью, серпень 1995 року.
Підписи: мова Розширення для поліпшення типу абстракції і підтип поліморфізм в C ++
Г. Баумгартнер, В.Ф. Руссо. Технічний звіт CSD-TR-95-051, кафедра комп’ютерних наук, Університет Пердью, серпень 1995 року.
Реалізація Підписи для C ++
Г. Баумгартнер, В.Ф. Руссо. Технічний звіт CSD-TR-95-025, кафедра комп’ютерних наук, Університет Пердью, серпень 1995 Покращена версія з’явиться в ACM Угоди на мовах програмування і систем (TOPLAS), Vol. 19, № 1, січень 1997 року, стор. 153-187.

1994

Підписи: подовжувач C ++ для типу абстракції і підтип поліморфізм
Г. Баумгартнер, В.Ф. Руссо. Технічний звіт CSD-TR-93-059, кафедра комп’ютерних наук, Університет Пердью, грудень 1994 витіснені Технічний звіт CSD-TR-95-051, кафедра комп’ютерних наук, Університет Пердью, серпень 1995 року.
Реалізація Підписи для C ++
Г. Баумгартнер, В.Ф. Руссо. У Працях конференції USENIX ++ 1994 C, 11-14 квітня 1994 року, Кембридж, штат Массачусетс, USENIX асоціації, стор. 37-56.

Фінансування

Університет штату Огайо, 1998 – +1999.

Про автора: Gerald Baumgartner

About The Author

admin

Comments are closed.