Открыть сервис

Барбара Лисков

Барбара Лисков — американский учёный в области информатики, пионер в программировании, разработчик языков программирования и теоретик абстрактных типов данных. Наиболее известна как создатель принципа подстановки Лисков (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) — защищённых объектов, обрабатывающих вызовы атомарно, что предвосхитило микросервисную архитектуру. Позже она работала над верификацией корректности распределённых систем и автоматическим синтезом протоколов репликации.

Избранные публикации

Лисков является автором и соавтором нескольких фундаментальных книг и десятков статей. Среди наиболее известных:

Награды и признание

Влияние на современное программирование

Влияние Барбары Лисков на индустрию трудно переоценить. Концепция абстракции данных лежит в основе всех современных объектно-ориентированных языков (Java, C++, Python, C#). Принцип подстановки Лисков является обязательной частью обучения архитектуре программного обеспечения. Её работы по распределённым системам повлияли на развитие транзакционных протоколов, баз данных и облачных вычислений. Она также активно выступала за увеличение числа женщин в STEM-дисциплинах, хотя сама избегала позиционирования себя как феминистский символ, предпочитая, чтобы её работу оценивали по её содержанию, а не полу.

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →