Гилад Браха - Gilad Bracha

Гилад Браха
Гилад Браха lang.NET 2006.jpg
Гилад Браха 2006
Альма-матерУниверситет Юты
Научная карьера
ТезисЯзык программирования Jigsaw: миксины, модульность и множественное наследование  (1991)
ДокторантГэри Линдстром
Интернет сайтhttp://www.bracha.org/

Гилад Браха является создателем Язык программирования новояз, а инженер-программист в Tensyr и бывший инженер-программист в Google где он работал над Язык программирования дарт команда.[1][2][3] Он является соавтором второго и третьего изданий журнала. Ява Спецификация языка,[4] и один из основных авторов второго издания Виртуальная машина Java Технические характеристики.[5]

С 1994 по 1997 год работал над Болтовня система, разработанная Animorphic Systems,[6] компания была куплена Sun в 1997 году. С 1997 по 2006 год он работал в Sun Microsystems так как Вычислительный теолог и по состоянию на 2005 г. Заслуженный инженер, по различным аспектам спецификации и реализации Java.[6] После этого он был Заслуженный инженер в Системы дизайна Cadence с 2006 по 2009 год, где он возглавлял команду разработчиков, занимающихся проектированием и внедрением Новояз.[6]

Браха получил степень бакалавра математики и компьютерных наук в Университет Бен-Гуриона в Израиль и его докторская степень. в области компьютерных наук из Университет Юты.[7] Браха выиграл старший Приз Даля – Найгаарда в 2017 году.

Крышки BGGA

В 2006 году Гилад Браха вместе с Нил Гафтер, Джеймс Гослинг, и Петер фон дер Ае (вместе BGGA) разработали спецификацию для добавления закрытие к языку программирования Java версии 6.[8] Предложение подверглось критике со стороны Джошуа Блох с точки зрения излишней сложности (добавление типов функций и нелокальных возвратов), но при этом не дает среднего преимущества для среднего программиста Java по сравнению с другими более простыми предложениями.[9] Замыкания были добавлены к Java 8, но основано на другом предложении, чем предложение BGGA.

Системы съемного типа

Браха предложил такой выбор система типов быть независимым от выбора языка; что система типов должна быть модулем, который при необходимости можно «подключить» к языку. Он считает, что это выгодно, потому что то, что он называет обязательными системами типов, делает языки менее выразительными, а код - более хрупким.[10] Требование, чтобы типы не влияли на семантику языка, сложно выполнить; например, такие конструкции, как перегрузка на основе типов, запрещены.

На практике подключаемые системы типов по-разному называют дополнительной типизацией, подсказкой типа, аннотацией типа или постепенной проверкой типа. Они, как правило, создаются путем добавления системы статических типов к существующему динамически типизированному языку без изменения его семантики и, как правило, с сохранением синтаксиса неизменным. Примеры включают Smalltalk,[11] Python 3,[12][13] Рубин,[14] Clojure,[15] и PHP 5.[16] Для большинства языков существует только одна реализация системы типов. Исключением является Python 3, где система типов действительно подключаемая, потому что существует несколько реализаций, и программист может использовать ту, которая лучше всего подходит. Единственный язык, разработанный с учетом системы сменных шрифтов с самого начала, - это новояз. Java 8 обеспечивает возможность расширения системы типов, но не допускает гибкости основ системы типов, такой как выбор между статической и динамической типизацией.[17]

Общая Java

В статье 1998 года, написанной Брахей, утверждается, что приведение типов, вставленных переводом [generics], гарантированно не даст сбоя.[18] Хотя изначально это было правдой, были добавлены подстановочные знаки, которые сделали систему типов нездоровый.[19]

Рекомендации

  1. ^ http://www.dartlang.org/authors/gilad-bracha.html
  2. ^ Интервью Channel 9 (mp3) с Гиладом Браха
  3. ^ https://www.linkedin.com/in/gbracha/
  4. ^ «Спецификация языка Java, третье издание». Oracle. Архивировано из оригинал 31 октября 2014 г.
  5. ^ "Предисловие". Спецификация виртуальной машины Java, второе издание. Oracle. Архивировано из оригинал на 2014-07-11.
  6. ^ а б c Резюме Гилада Браха
  7. ^ Биореклама Брахи
  8. ^ «Замыкания (лямбда-выражения) для языка программирования Java».
  9. ^ Блох, Джошуа. Споры о закрытии (Речь). Яваполис '07. Архивировано из оригинал 4 февраля 2015 г.. Получено 3 февраля 2015.
  10. ^ Браха, Г .: Подключаемые типы
  11. ^ https://code.google.com/p/strongtalk/
  12. ^ http://legacy.python.org/dev/peps/pep-3107/
  13. ^ https://andreacensi.github.io/contracts/
  14. ^ http://blog.codeclimate.com/blog/2014/05/06/gradual-type-checking-for-ruby/
  15. ^ https://github.com/clojure/core.typed/wiki
  16. ^ http://php.net/manual/en/language.oop5.typehinting.php
  17. ^ «Аннотации типов и сменные системы типов». Oracle.
  18. ^ Делаем будущее безопасным для прошлого: добавление универсальности языку программирования Java. Гилад Браха, Мартин Одерски, Дэвид Стаутамир и Филип Вадлер. OOPSLA 98, Ванкувер, октябрь 1998 г. http://homepages.inf.ed.ac.uk/wadler/gj/Documents/#gj-oopsla
  19. ^ Нада Амин и Росс Тейт. «Системы типов Java и Scala не верны» (PDF).

внешняя ссылка