Джо-Э
Парадигма | возможность объекта |
---|---|
Разработано | Дэвид А. Вагнер , Адриан Меттлер, Чип Морнингстар, Марк С. Миллер |
Впервые появился | 2004 [1] |
Стабильная версия | 2.2.0а |
Под влиянием | |
Ява , Э | |
Под влиянием | |
Проект Каха |
Joe-E — это подмножество языка программирования Java , предназначенное для поддержки программирования в соответствии с дисциплиной объектных возможностей . [2]
Этот язык примечателен тем, что является одним из первых языков подмножества объектных возможностей. Это повлияло на более поздние подмножества языков, такие как ADsafe и Caja/Cajita , подмножества Javascript.
Он также примечателен тем, что позволяет проверять методы как функционально чистые на основе их сигнатур методов. [3]
Ограничения, налагаемые верификатором Joe-E, включают:
- Классы могут не иметь изменяемых статических полей, поскольку они создают глобальное состояние.
- Перехват исключений нехватки памяти запрещен, поскольку это допускает недетерминированное выполнение. По той же причине, предложения , наконец, не допускаются.
- Методы стандартной библиотеки могут быть заблокированы, если они считаются небезопасными согласно правилам приручения. Например, конструктор новый файл(имя файла) заблокирован, поскольку он обеспечивает неограниченный доступ к файловой системе.
Cup of Joe на сленге означает кофе и поэтому служит отсылкой к Java, избегающей товарного знака. Таким образом, название Joe-E предполагает адаптацию идей языка программирования E для создания варианта языка Java.
Сервер Waterken написан на Joe-E.
Ссылки
[ редактировать ]- ^ Раннее упоминание Джо-И в списке рассылки Cap-Talk, Марк С. Миллер , 11 ноября 2004 г., получено 21 ноября 2009 г.
- ^ Джо-Э: Подмножество Java, ориентированное на безопасность , Адриан Меттлер, Дэвид Вагнер и Тайлер Клоуз; Январь 2010 года.
- ^ Поддающаяся проверке функциональная чистота в Java , Мэтью Финифтер, Адриан Меттлер, Навин Састри, Дэвид Вагнер; Октябрь 2008 г., Конференция по компьютерной и коммуникационной безопасности.
Внешние ссылки
[ редактировать ]- Проект Joe-E в Google Code
- Спецификация языка Joe-E