Барбара Лисков
Барбара Лисков — американский учёный в области информатики, пионер в программировании, разработчик языков программирования и теоретик абстрактных типов данных. Наиболее известна как создатель принципа подстановки Лисков (Liskov substitution principle, LSP), одного из пяти принципов объектно-ориентированного проектирования SOLID. Лауреат премии Тьюринга 2008 года за вклад в основы абстракции данных и системное программирование.
Биография и образование
Барбара Джейн Лисков (в девичестве — Хуберман) родилась 7 ноября 1939 года в Лос-Анджелесе, Калифорния. Её отец был юристом, мать — домохозяйкой. Интерес к математике проявился ещё в школе. В 1961 году она получила степень бакалавра по математике в Калифорнийском университете в Беркли. В 1962 году, уже будучи замужем, поступила в Стэнфордский университет, где в 1964 году защитила магистерскую диссертацию по искусственному интеллекту под руководством Джона Маккарти. В 1968 году она стала одной из первых женщин, получивших докторскую степень (Ph.D.) в области компьютерных наук. Её докторская диссертация была посвящена программе для игры в шахматы и автоматическому доказательству теорем.
После получения степени она работала в частной исследовательской лаборатории Mitre Corporation, где участвовала в разработке операционной системы Venus. В 1972 году перешла в Массачусетский технологический институт (MIT), где проработала до выхода на пенсию в 2019 году, занимая должность профессора кафедры электротехники и компьютерных наук. Она также была членом Национальной инженерной академии США и Американской академии искусств и наук.
Научный вклад
Абстракция данных и CLU
Главным вкладом Лисков в теорию программирования стала разработка концепции абстракции данных. В 1970-х годах, задолго до повсеместного распространения объектно-ориентированного программирования, она руководила проектом по созданию языка программирования CLU. CLU, хотя и не получил широкого коммерческого распространения, заложил основы для современных языков: в нём впервые были реализованы кластеры (аналог классов), параметризованные типы (дженерики) и итераторы. Именно в CLU Лисков формализовала понятие абстрактного типа данных как набора значений, скрытых за интерфейсом операций, что стало фундаментом для ООП.
Принцип подстановки Лисков
В 1987 году на конференции OOPSLA Лисков представила то, что позже стало известно как принцип подстановки Лисков (LSP). Формально принцип гласит: «Если для каждого объекта o1 типа S существует объект o2 типа T такой, что для всех программ P, определённых в терминах T, поведение P не изменяется при замене o1 на o2, то S является подтипом T». В более популярной формулировке: объекты в программе должны быть заменяемыми экземплярами их родительских типов без нарушения корректности программы.
Этот принцип стал ключевым для правильного наследования в ООП: подкласс не должен расширять функциональность так, чтобы нарушать инварианты базового класса (например, класс-наследник «Пингвин» не должен наследовать от класса «Птица» метод «летать», если он не умеет летать, так как это нарушит подстановку). LSP был популяризирован Робертом Мартином как буква «L» в принципах SOLID.
Системы распределённых вычислений
С конца 1980-х годов Лисков занималась проблемами распределённых вычислений и отказоустойчивости. Совместно с коллегами она разработала язык Argus — один из первых языков для построения распределённых приложений, поддерживающий транзакции на уровне языка. Argus ввёл понятие стражей (guardians) — защищённых объектов, обрабатывающих вызовы атомарно, что предвосхитило микросервисную архитектуру. Позже она работала над верификацией корректности распределённых систем и автоматическим синтезом протоколов репликации.
Избранные публикации
Лисков является автором и соавтором нескольких фундаментальных книг и десятков статей. Среди наиболее известных:
- «Program Development in Java: Abstraction, Specification, and Object-Oriented Design» (2001) — учебник, ставший стандартом для курсов по программной инженерии.
- «Abstraction and Specification in Program Development» (1986) — ранняя работа, формализующая подходы к спецификации абстрактных типов.
- Статья «A Principled Approach to Specification of Distributed Systems» — описывает методы формальной верификации.
Награды и признание
- Премия Тьюринга (2008) — за вклад в основы абстракции данных и системное программирование. Она стала второй женщиной после Фрэнсис Аллен, получившей эту высшую награду в области компьютерных наук.
- Медаль Джона фон Неймана (2004) — от Института инженеров электротехники и электроники (IEEE).
- Премия «Пионер компьютерных наук» (2018) — от Музея истории компьютеров.
- Премия ACM SIGPLAN «За выдающиеся достижения» (2001).
- Членство в Национальной инженерной академии (1985) и Национальной академии наук (2020).
Влияние на современное программирование
Влияние Барбары Лисков на индустрию трудно переоценить. Концепция абстракции данных лежит в основе всех современных объектно-ориентированных языков (Java, C++, Python, C#). Принцип подстановки Лисков является обязательной частью обучения архитектуре программного обеспечения. Её работы по распределённым системам повлияли на развитие транзакционных протоколов, баз данных и облачных вычислений. Она также активно выступала за увеличение числа женщин в STEM-дисциплинах, хотя сама избегала позиционирования себя как феминистский символ, предпочитая, чтобы её работу оценивали по её содержанию, а не полу.
Источники
- Barbara Liskov. «A View of the Present and Future of Distributed Computing». 2009.
- Barbara Liskov. «Keynote: The Power of Abstraction». MIT Press.
- Barbara Liskov, Jeannette Wing. «Family Values: A Behavioral Notion of Subtyping». ACM Transactions on Programming Languages and Systems, 1994.
- Robert C. Martin. «Agile Software Development, Principles, Patterns, and Practices». Prentice Hall, 2002.
- Интервью с Барбарой Лисков для Computer History Museum (2014).
- Официальный сайт Массачусетского технологического института, профиль Барбары Лисков.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →