Леммель, Ральф
Ральф Леммель — немецкий учёный, профессор Университета Кобленц-Ландау[de], декан факультета информатики[1]. Входит в список самых плодовитых авторов научных статей по версии DBLP как имеющий более 160 опубликованных работ[2]. Индекс Хирша — 39[3].
Ральф Леммель | |
---|---|
Ralf Lämmel | |
Место рождения | |
Страна | |
Научная сфера | информатика |
Место работы | |
Альма-матер | |
Учёная степень | доктор философии |
Учёное звание | профессор |
Научный руководитель | Гюнтер Ридевальд |
Ральф Леммель защитил диссертацию на соискание степени доктора-инженера по теме «Функциональные метапрограммы в помощью повторному использованию в рамках декларативной парадигмы»[4][5] в 1999, и позже в том же году переехал в Нидерланды, где проработал несколько лет в различных научно-исследовательских организациях. В 2005 Леммель перешёл работать в Microsoft, где занимался НИОКР в области XML-технологий[1]. После 2007 года вернулся в Европу, где занял позицию профессора в небольшом немецком университете, на которой и работает (на 2016 год).
Среди самых широко цитируемых работ Леммеля — статья с объяснением модели распределённых вычислений MapReduce[6]. Вместо используемого в Google языка Sawzall[en] он продемонстрировал возможности типизации, абстракции, распараллеливания и агрегации для более популярного языка Haskell, а позже добавил и реализацию для Hadoop[7]. Ещё более известен предложенный Леммелем стиль функционального обобщённого программирования под названием «scrap your boilerplate» (SYB, приблизительно переводится как «вычищение шаблонов»), которому посвящён целый ряд статей[8][9][10][11][12][13], написанных большей частью в соавторстве с Саймоном Пейтон-Джонсом, ведущим разработчиком языка Haskell. Задача, решаемая методикой SYB, заключается в том, что обход иерархических структур данных (например, деревьев), что часто встречаются в программировании, совершается однообразным кодом, который перебирает все возможные варианты на каждом уровне иерархии и продолжает обход в желаемом направлении. Если такого кода существенно больше, чем кода, относящегося к собственно центральному алгоритму, это отвлекает программиста и рассеивает его внимание. SYB предлагает набор полиморфных комбинаторов, скрывающих рутинный код обхода и позволяющий программисту сфокусировать внимание на более важных аспектах.
Леммель является соавтором некоторых терминов, получивших широкое признание и распространение в научном сообществе. Среди них: «грамматическое обеспечение» (grammarware, по аналогии с программным обеспечением)[14] как дисциплина создания грамматик, схем баз данных, систем типов и прочих компонент компилятора; «языковая инженерия» (software language engineering, по аналогии с программной инженерией)[15][16][17] как область научных исследований, изучающая языки программирования, моделирования, проектирования, спецификаций, разметки, описания аппаратуры или интерфейсов, предметно-ориентированные языки, языки запросов и т. п.; «хрестоматия программного обеспечения» (software chrestomathy)[18][19][20] как репозиторий, в котором в связанном друг с другом виде хранятся исходный код, документация, модели, архитектура, сценарии сборки, структуры данных и прочие компоненты. В 2009 году он стал одним из основателей конференции по языковой инженерии SLE (International Conference of Software Language Engineering)[1][21]. В 2018 году в издательстве Springer вышла его книга «Программные языки: синтаксис, семантика и метапрограммирование»[22][23].
Ральф Леммель был одним из учёных, заложивших основы общей теории двунаправленных преобразований[en] (англ. bidirectional transformation, bx)[24] и представлял там теорию языков программирования. Двунаправленные преобразования — это не всегда биективные отображения, двунаправленной может считаться любая пара преобразований, связанная определёнными законами. Например, представление получается из базы данных фильтрацией содержимого, но в некоторых системах изменения представления могут быть возвращены в исходную базу и применены к полному набору имеющихся там данных. Вклад Леммеля заключался в двунаправленных преобразованиях грамматик[24].
ПримечанияПравить
- ↑ 1 2 3 CV/Bio Ralf Lämmel: Short bio; Long bio Архивная копия от 22 марта 2016 на Wayback Machine.
- ↑ Most prolific dblp authors Архивная копия от 29 апреля 2017 на Wayback Machine.
- ↑ Ralf Lämmel на Google Scholar.
- ↑ Ralf Lämmel на Mathematics Genealogy Project.
- ↑ Ralf Lämmel, Functional meta-programs towards reusability in the declarative paradigm Архивная копия от 6 октября 2016 на Wayback Machine, Shaker Verlag, 1999, ISBN 3-8265-6042-6.
- ↑ Ralf Lämmel, Google’s MapReduce programming model — Revisited. Sci. Comput. Program. 70(1): 1-30 (2008).
- ↑ Ralf Lämmel, David Saile, MapReduce with Deltas Архивная копия от 7 октября 2016 на Wayback Machine, PDPTA 2011.
- ↑ Ralf Lämmel, Simon L. Peyton Jones, Scrap your boilerplate: a practical design pattern for generic programming. TLDI 2003: 26-37.
- ↑ Simon L. Peyton Jones, Ralf Lämmel, Scrap Your Boilerplate. APLAS 2003: 357.
- ↑ Ralf Lämmel, Simon L. Peyton Jones, Scrap more boilerplate: reflection, zips, and generalised casts. ICFP 2004: 244—255.
- ↑ Ralf Lämmel, Simon L. Peyton Jones, Scrap your boilerplate with class: extensible generic functions. ICFP 2005: 204—215.
- ↑ Ralf Lämmel, Scrap your boilerplate with XPath-like combinators. POPL 2007: 137—142.
- ↑ Ralf Lämmel, Scrap your boilerplate: prologically! PPDP 2009: 7-12.
- ↑ Paul Klint, Ralf Lämmel, Chris Verhoef, Toward an engineering discipline for grammarware. ACM Trans. Softw. Eng. Methodol. 14(3): 331—380 (2005).
- ↑ Dragan Gasevic, Ralf Lämmel, Eric Van Wyk, Software Language Engineering, First International Conference, SLE 2008, Toulouse, France, September 29-30, 2008. Revised Selected Papers. Lecture Notes in Computer Science 5452, Springer 2009, ISBN 978-3-642-00433-9.
- ↑ Jean-Marie Favre, Dragan Gasevic, Ralf Lämmel, Andreas Winter, Editorial — Software language engineering. IET Software 2(3): 161—164 (2008).
- ↑ Jean-Marie Favre, Dragan Gasevic, Ralf Lämmel, Andreas Winter, Guest Editors' Introduction to the Special Section on Software Language Engineering. IEEE Trans. Software Eng. 35(6): 737—741 (2009).
- ↑ Jean-Marie Favre, Ralf Lämmel, Martin Leinberger, Thomas Schmorleiz, Andrei Varanovich, Linking Documentation and Source Code in a Software Chrestomathy. WCRE 2012: 335—344.
- ↑ Ralf Lämmel: Software chrestomathies. Sci. Comput. Program. 97: 98-104 (2015).
- ↑ Jean-Marie Favre, Ralf Lämmel, Thomas Schmorleiz, Andrei Varanovich, 101companies: A Community Project on Software Technologies and Software Languages. TOOLS (50) 2012: 58-74.
- ↑ SLE2008 — 1st International Conference on Software Language Engineering — Committees Архивная копия от 9 февраля 2018 на Wayback Machine.
- ↑ The Software Languages Book (неопр.). Дата обращения: 18 июля 2018. Архивировано 18 июля 2018 года.
- ↑ Ralf Lämmel. Software Languages. — 2018. — doi:10.1007/978-3-319-90800-7.
- ↑ 1 2 Krzysztof Czarnecki, J. Nathan Foster, Zhenjiang Hu, Ralf Lämmel, Andy Schürr, James F. Terwilliger, Bidirectional Transformations: A Cross-Discipline Perspective. ICMT 2009: 260—283