0 added
0 removed
Original
2026-01-01
Modified
2026-02-21
1
<p><a>#статьи</a></p>
1
<p><a>#статьи</a></p>
2
<ul><li>23 сен 2022</li>
2
<ul><li>23 сен 2022</li>
3
<li>0</li>
3
<li>0</li>
4
</ul><h2>Екатерина Ющенко: автор указателей и первая женщина-программист в СССР</h2>
4
</ul><h2>Екатерина Ющенко: автор указателей и первая женщина-программист в СССР</h2>
5
<p>Рассказываем об учёной, которая создала прообраз языка C, опередив Fortran и COBOL, но не получила признания в мире.</p>
5
<p>Рассказываем об учёной, которая создала прообраз языка C, опередив Fortran и COBOL, но не получила признания в мире.</p>
6
<p>Иллюстрация: Unknown author / Wikimedia Commons / freepik / Freepik / Дима Руденок для Skillbox Media</p>
6
<p>Иллюстрация: Unknown author / Wikimedia Commons / freepik / Freepik / Дима Руденок для Skillbox Media</p>
7
<p>Любитель научной фантастики и технологического прогресса. Хорошо сочетает в себе заумного технаря и утончённого гуманитария. Пишет про IT и радуется этому.</p>
7
<p>Любитель научной фантастики и технологического прогресса. Хорошо сочетает в себе заумного технаря и утончённого гуманитария. Пишет про IT и радуется этому.</p>
8
<p>Екатерина Логвиновна Ющенко родилась в 1919 году в казачьем городе Чигирине. В 1937 году, когда она училась на первом курсе физмата Киевского университета, её отец, школьный учитель истории и географии, был осуждён по ложному обвинению в национализме.</p>
8
<p>Екатерина Логвиновна Ющенко родилась в 1919 году в казачьем городе Чигирине. В 1937 году, когда она училась на первом курсе физмата Киевского университета, её отец, школьный учитель истории и географии, был осуждён по ложному обвинению в национализме.</p>
9
<p>Это не могло не отразиться на судьбе дочери.</p>
9
<p>Это не могло не отразиться на судьбе дочери.</p>
10
Екатерина Ющенко в молодости<em>Фото: Национальный университет "Одесская политехника"</em><p>Екатерину Логвиновну заклеймили как "дочь врага народа" и исключили из университета - как объясняли ей в ректорате, "по приказу свыше".</p>
10
Екатерина Ющенко в молодости<em>Фото: Национальный университет "Одесская политехника"</em><p>Екатерину Логвиновну заклеймили как "дочь врага народа" и исключили из университета - как объясняли ей в ректорате, "по приказу свыше".</p>
11
<p>"Мне было 17 лет, и я свято верила словам Сталина - "сын за отца не отвечает“.</p>
11
<p>"Мне было 17 лет, и я свято верила словам Сталина - "сын за отца не отвечает“.</p>
12
<p>Придя к ректору, я спросила:</p>
12
<p>Придя к ректору, я спросила:</p>
13
<p>- Разве есть закон, позволяющий исключить меня из института?</p>
13
<p>- Разве есть закон, позволяющий исключить меня из института?</p>
14
<p>- Есть! - ответил ректор. - Телефонограмма народного комиссара просвещения Затонского".</p>
14
<p>- Есть! - ответил ректор. - Телефонограмма народного комиссара просвещения Затонского".</p>
15
<p><strong>Екатерина Ющенко,</strong>книга Б. Н. Малиновского "<a>Очерки по истории компьютерной науки и техники в Украине</a>".</p>
15
<p><strong>Екатерина Ющенко,</strong>книга Б. Н. Малиновского "<a>Очерки по истории компьютерной науки и техники в Украине</a>".</p>
16
<p>Вскоре арестовали и мать Ющенко: её приговорили к десяти годам лагерей. Родителей реабилитировали лишь в 1954 году, посмертно.</p>
16
<p>Вскоре арестовали и мать Ющенко: её приговорили к десяти годам лагерей. Родителей реабилитировали лишь в 1954 году, посмертно.</p>
17
<p>После исключения несправедливо пострадавшая студентка пыталась поступить в МГУ - её даже приняли, но отказались выделить место в общежитии. На университетской доске объявлений она увидела листовку, которая дарила ей новую надежду. Недавно организованный в Самарканде Узбекский государственный университет обещал абитуриентам, успешно прошедшим экзамен, не только общежитие и стипендию, но даже оплату проезда. Ющенко поступила и переехала в Узбекистан.</p>
17
<p>После исключения несправедливо пострадавшая студентка пыталась поступить в МГУ - её даже приняли, но отказались выделить место в общежитии. На университетской доске объявлений она увидела листовку, которая дарила ей новую надежду. Недавно организованный в Самарканде Узбекский государственный университет обещал абитуриентам, успешно прошедшим экзамен, не только общежитие и стипендию, но даже оплату проезда. Ющенко поступила и переехала в Узбекистан.</p>
18
<p>С началом войны Екатерину Логвиновну перевели в Ташкент, в Среднеазиатский государственный университет. Параллельно с учёбой она работала на заводе, производящем прицелы для танков.</p>
18
<p>С началом войны Екатерину Логвиновну перевели в Ташкент, в Среднеазиатский государственный университет. Параллельно с учёбой она работала на заводе, производящем прицелы для танков.</p>
19
<p>В 1942 году Ющенко получила диплом математика, но война диктовала свои условия: вместо университетской кафедры молодая учёная добровольцем отправилась на Ангренский угольный комбинат в 150 километрах от столицы Узбекистана. Год проработала запальщиком-взрывником в шахте, потом ещё два года - учительницей физики и математики в ташкентской средней школе. И только после войны она смогла вернуться домой, в Украину, и заняться любимым делом - наукой.</p>
19
<p>В 1942 году Ющенко получила диплом математика, но война диктовала свои условия: вместо университетской кафедры молодая учёная добровольцем отправилась на Ангренский угольный комбинат в 150 километрах от столицы Узбекистана. Год проработала запальщиком-взрывником в шахте, потом ещё два года - учительницей физики и математики в ташкентской средней школе. И только после войны она смогла вернуться домой, в Украину, и заняться любимым делом - наукой.</p>
20
<p>В 1946 году во Львове открылся филиал Института математики АН УССР. Академик Борис Гнеденко предложил Екатерине Логвиновне работу на кафедре теории вероятностей.</p>
20
<p>В 1946 году во Львове открылся филиал Института математики АН УССР. Академик Борис Гнеденко предложил Екатерине Логвиновне работу на кафедре теории вероятностей.</p>
21
<p>В 1950-м Ющенко защитила кандидатскую диссертацию и вместе с Гнеденко переехала в Киев, в головной институт. В те годы он был на взлёте - в частности, именно его директор, академик Александр Юльевич Ишлинский, разрабатывал теорию гироскопов, так необходимую для создания советских космических спутников.</p>
21
<p>В 1950-м Ющенко защитила кандидатскую диссертацию и вместе с Гнеденко переехала в Киев, в головной институт. В те годы он был на взлёте - в частности, именно его директор, академик Александр Юльевич Ишлинский, разрабатывал теорию гироскопов, так необходимую для создания советских космических спутников.</p>
22
<p>Всё это требовало сложнейших расчётов. Правительство закупило для Киева мощные по тем временам счётно-аналитические машины. Ющенко возглавила вычислительную лабораторию.</p>
22
<p>Всё это требовало сложнейших расчётов. Правительство закупило для Киева мощные по тем временам счётно-аналитические машины. Ющенко возглавила вычислительную лабораторию.</p>
23
Киевский МЭСМ<em>Фото:<a>Мининский университет</a></em><p>В распоряжении Екатерины Логвиновны были МЭСМ - разработанные в Украине первые ЭВМ на европейском континенте. Несмотря на всю свою научную революционность, машины имели значительные недостатки - ограниченную память, малую производительность и сбои в работе из-за большого числа электронных ламп.</p>
23
Киевский МЭСМ<em>Фото:<a>Мининский университет</a></em><p>В распоряжении Екатерины Логвиновны были МЭСМ - разработанные в Украине первые ЭВМ на европейском континенте. Несмотря на всю свою научную революционность, машины имели значительные недостатки - ограниченную память, малую производительность и сбои в работе из-за большого числа электронных ламп.</p>
24
<p>Это заставляло программистов искать довольно специфические способы работы с внутренним языком ЭВМ. Каждая программа была уникальным квестом: требовалось придумать наиболее экономные варианты решения, используя особенности архитектуры.</p>
24
<p>Это заставляло программистов искать довольно специфические способы работы с внутренним языком ЭВМ. Каждая программа была уникальным квестом: требовалось придумать наиболее экономные варианты решения, используя особенности архитектуры.</p>
25
<p>Через некоторое время выяснилось: только с помощью машинных программ часть научных задач - естественно, самых сложных - вообще не решается. Возникла идея создать язык более высокого уровня, а также транслятора для него, чтобы упростить взаимодействие человека с компьютером. Этим и занялась Ющенко.</p>
25
<p>Через некоторое время выяснилось: только с помощью машинных программ часть научных задач - естественно, самых сложных - вообще не решается. Возникла идея создать язык более высокого уровня, а также транслятора для него, чтобы упростить взаимодействие человека с компьютером. Этим и занялась Ющенко.</p>
26
<p>В то время были очень популярны идеи<a>академика Ляпунова</a>, который предложил для программирования операторный метод. Екатерина Логвиновна и её коллега Владимир Семёнович Королюк решили применить эти идеи.</p>
26
<p>В то время были очень популярны идеи<a>академика Ляпунова</a>, который предложил для программирования операторный метод. Екатерина Логвиновна и её коллега Владимир Семёнович Королюк решили применить эти идеи.</p>
27
Ющенко и Королюк<em>Фото:<a>Мининский университет</a></em><p>Созданный ими язык совмещал два принципа - программное управление и адресность. Первый состоял в том, что компьютером управляли с помощью программ, которые человек писал на понятном для него языке, а затем с помощью транслятора переводил в машинные инструкции. Второй включал в себя прямую работу с компьютерной памятью - примерно как сейчас это сделано в языках C, С++ и Rust.</p>
27
Ющенко и Королюк<em>Фото:<a>Мининский университет</a></em><p>Созданный ими язык совмещал два принципа - программное управление и адресность. Первый состоял в том, что компьютером управляли с помощью программ, которые человек писал на понятном для него языке, а затем с помощью транслятора переводил в машинные инструкции. Второй включал в себя прямую работу с компьютерной памятью - примерно как сейчас это сделано в языках C, С++ и Rust.</p>
28
<p>Учёные назвали свою разработку Адресным языком. Он имел понятную систему определений, описывающую архитектуру ЭВМ и её команды, и умел манипулировать адресами второго ранга.</p>
28
<p>Учёные назвали свою разработку Адресным языком. Он имел понятную систему определений, описывающую архитектуру ЭВМ и её команды, и умел манипулировать адресами второго ранга.</p>
29
<p>Позже Екатерина Логвиновна вместе с Гнеденко и Королюком написали первый учебник по программированию - "Элементы программирования". Его издали в 1961 году в СССР, в 1964 году - в ГДР и Венгрии, а в 1969 году - во Франции.</p>
29
<p>Позже Екатерина Логвиновна вместе с Гнеденко и Королюком написали первый учебник по программированию - "Элементы программирования". Его издали в 1961 году в СССР, в 1964 году - в ГДР и Венгрии, а в 1969 году - во Франции.</p>
30
<p>Адресный язык - алгоритмический. Принцип адресности, заявленный в его названии, подразумевает, что данные для решения задачи хранятся в одной из ячеек запоминающего устройства, которой присвоен собственный адрес.</p>
30
<p>Адресный язык - алгоритмический. Принцип адресности, заявленный в его названии, подразумевает, что данные для решения задачи хранятся в одной из ячеек запоминающего устройства, которой присвоен собственный адрес.</p>
31
<p>В те годы это реализовывалось так. Сперва разработчик размещал данные в ячейках - это называлось начальным этапом программирования. После этого он писал программу, указывая уже не сами данные, а их адрес - то есть место в памяти ЭВМ.</p>
31
<p>В те годы это реализовывалось так. Сперва разработчик размещал данные в ячейках - это называлось начальным этапом программирования. После этого он писал программу, указывая уже не сами данные, а их адрес - то есть место в памяти ЭВМ.</p>
32
<p>Это позволяло более-менее универсализировать решение задач. Например, можно было составить алгоритм общего вида - последовательность расчётов для какого-либо процесса, аппарата или параметра (допустим, взлёта аэродинамического устройства, разогрева котла под давлением или перепада напряжения в электросети). И потом использовать этот алгоритм для решения огромного массива прикладных задач, просто подставляя в адресные ячейки нужные данные (размеры устройства, температура в котле, данные внешней среды, электросхема сети и так далее).</p>
32
<p>Это позволяло более-менее универсализировать решение задач. Например, можно было составить алгоритм общего вида - последовательность расчётов для какого-либо процесса, аппарата или параметра (допустим, взлёта аэродинамического устройства, разогрева котла под давлением или перепада напряжения в электросети). И потом использовать этот алгоритм для решения огромного массива прикладных задач, просто подставляя в адресные ячейки нужные данные (размеры устройства, температура в котле, данные внешней среды, электросхема сети и так далее).</p>
33
<p>Ещё один важный аспект Адресного языка - принцип программного управления. Он означает, что порядок выполнения команд строго определён: ЭВМ последовательно считывает их сверху вниз.</p>
33
<p>Ещё один важный аспект Адресного языка - принцип программного управления. Он означает, что порядок выполнения команд строго определён: ЭВМ последовательно считывает их сверху вниз.</p>
34
<p>Адресный язык позволял реализовать все основные числовые операции:</p>
34
<p>Адресный язык позволял реализовать все основные числовые операции:</p>
35
<ul><li>арифметические: +, -, ×, ÷;</li>
35
<ul><li>арифметические: +, -, ×, ÷;</li>
36
<li>функциональные: √, sin, ln и другие;</li>
36
<li>функциональные: √, sin, ln и другие;</li>
37
<li>логические: ∧, ∨, ¬;</li>
37
<li>логические: ∧, ∨, ¬;</li>
38
<li>отношения: =, <, ≤;</li>
38
<li>отношения: =, <, ≤;</li>
39
<li>и другие.</li>
39
<li>и другие.</li>
40
</ul><p>Кроме того, существовали дополнительные операторы, созданные для управления программами (их называли формулами, или функциями):</p>
40
</ul><p>Кроме того, существовали дополнительные операторы, созданные для управления программами (их называли формулами, или функциями):</p>
41
<ul><li>‘ - команда, которая "достаёт" содержимое из адресной ячейки. По сути, она аналогична команде * в современном C++.</li>
41
<ul><li>‘ - команда, которая "достаёт" содержимое из адресной ячейки. По сути, она аналогична команде * в современном C++.</li>
42
<li>⇒ - операция переноса содержимого из одной ячейки в другую.</li>
42
<li>⇒ - операция переноса содержимого из одной ячейки в другую.</li>
43
</ul><p>Работали они так. Если у нас есть адрес A, а по нему располагаются данные B, записывали это следующим образом:</p>
43
</ul><p>Работали они так. Если у нас есть адрес A, а по нему располагаются данные B, записывали это следующим образом:</p>
44
<p>‘A = B</p>
44
<p>‘A = B</p>
45
<p>Чтобы скопировать содержимое из адреса A по адресу C, нужно было написать так:</p>
45
<p>Чтобы скопировать содержимое из адреса A по адресу C, нужно было написать так:</p>
46
<p>‘A ⇒ C</p>
46
<p>‘A ⇒ C</p>
47
<p>В итоге получались две отдельные, никак не связанные друг с другом ячейки с одинаковыми данными:</p>
47
<p>В итоге получались две отдельные, никак не связанные друг с другом ячейки с одинаковыми данными:</p>
48
<p>‘A = B</p>
48
<p>‘A = B</p>
49
<p>и</p>
49
<p>и</p>
50
<p>‘C = B</p>
50
<p>‘C = B</p>
51
<p>Чтобы решить простую программу сложения двух чисел из разных ячеек, нужно воспользоваться операциями +, ‘ и ⇒. Схематично это выглядело, например, так:</p>
51
<p>Чтобы решить простую программу сложения двух чисел из разных ячеек, нужно воспользоваться операциями +, ‘ и ⇒. Схематично это выглядело, например, так:</p>
52
<p>‘A + ‘C ⇒ A</p>
52
<p>‘A + ‘C ⇒ A</p>
53
<p>То есть мы достали данные из адресов A и C, сложили их и положили полученное по адресу A.</p>
53
<p>То есть мы достали данные из адресов A и C, сложили их и положили полученное по адресу A.</p>
54
<p>Адресный язык стал важным достижением теоретического программирования. Он опередил такие языки, как Fortran (1958), COBOL (1959) и Algol (1960), а также вдохновил разработчиков на создание ассемблеров. Более того: некоторые конструкции Адресного языка стали частью архитектуры многих современных языков вроде уже упоминавшегося C и C++.</p>
54
<p>Адресный язык стал важным достижением теоретического программирования. Он опередил такие языки, как Fortran (1958), COBOL (1959) и Algol (1960), а также вдохновил разработчиков на создание ассемблеров. Более того: некоторые конструкции Адресного языка стали частью архитектуры многих современных языков вроде уже упоминавшегося C и C++.</p>
55
<p>Строго говоря, первым, кто описал работу указателей, был советский математик Андрей Колмогоров. Он изложил теоретические основы этой идеи в своей научной работе "<a>К определению алгоритма</a>".</p>
55
<p>Строго говоря, первым, кто описал работу указателей, был советский математик Андрей Колмогоров. Он изложил теоретические основы этой идеи в своей научной работе "<a>К определению алгоритма</a>".</p>
56
<p>Однако премию IEEE за указатели получил не он и не Ющенко с Королюком, реализовавшие их на практике, а Гарольд Лоусон, автор PL/1. Почему так?</p>
56
<p>Однако премию IEEE за указатели получил не он и не Ющенко с Королюком, реализовавшие их на практике, а Гарольд Лоусон, автор PL/1. Почему так?</p>
57
<p>Главной причиной было то, что о работах советских учёных за пределами СССР почти никто не знал. Екатерина Логвиновна хоть и создала в Адресном языке подобие указателей, но не могла поделиться своим опытом с зарубежными коллегами: на дворе была самая активная фаза холодной войны, так что возможность обмениваться знаниями между учёными Запада и Востока была практически закрыта.</p>
57
<p>Главной причиной было то, что о работах советских учёных за пределами СССР почти никто не знал. Екатерина Логвиновна хоть и создала в Адресном языке подобие указателей, но не могла поделиться своим опытом с зарубежными коллегами: на дворе была самая активная фаза холодной войны, так что возможность обмениваться знаниями между учёными Запада и Востока была практически закрыта.</p>
58
<p>Зато на Родине вклад Ющенко в отечественную кибернетику оценили по достоинству. За свою научную карьеру Екатерина Логвиновна подготовила 11 докторов и 45 кандидатов наук. Ей вручили две Государственные премии Украины и одну премию Совета Министров СССР, а за разработки в сфере компьютерной алгебры - академическую премию имени Глушкова. Кроме того, Ющенко наградили орденом Княгини Ольги за выдающиеся заслуги в науке.</p>
58
<p>Зато на Родине вклад Ющенко в отечественную кибернетику оценили по достоинству. За свою научную карьеру Екатерина Логвиновна подготовила 11 докторов и 45 кандидатов наук. Ей вручили две Государственные премии Украины и одну премию Совета Министров СССР, а за разработки в сфере компьютерной алгебры - академическую премию имени Глушкова. Кроме того, Ющенко наградили орденом Княгини Ольги за выдающиеся заслуги в науке.</p>
59
Глушков и Ющенко<em>Фото: "<a>История информационных технологий в СССР и России</a>"</em><p>Екатерина Логвиновна стала первой женщиной-учёным, которая получила степень доктора наук в области программирования. Она также написала более двухсот научных работ, монографий и учебных пособий, некоторые из которых перевели и издали в Германии, Франции, Чехии, Венгрии и Дании.</p>
59
Глушков и Ющенко<em>Фото: "<a>История информационных технологий в СССР и России</a>"</em><p>Екатерина Логвиновна стала первой женщиной-учёным, которая получила степень доктора наук в области программирования. Она также написала более двухсот научных работ, монографий и учебных пособий, некоторые из которых перевели и издали в Германии, Франции, Чехии, Венгрии и Дании.</p>
60
<p>Но, несмотря на все её достижения, у Екатерины Ющенко была тяжёлая жизнь. Её отца и мать осудили по ложным обвинениям, она вечно скиталась из одного города в другой. И всё это наводило Екатерину Логвиновну на тоску о своём родном городе. Ему она даже посвятила стихотворение "<a>Мой город</a>".</p>
60
<p>Но, несмотря на все её достижения, у Екатерины Ющенко была тяжёлая жизнь. Её отца и мать осудили по ложным обвинениям, она вечно скиталась из одного города в другой. И всё это наводило Екатерину Логвиновну на тоску о своём родном городе. Ему она даже посвятила стихотворение "<a>Мой город</a>".</p>
61
<a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>
61
<a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>