Новости кто создал язык программирования паскаль

В возрасте 89 лет скончался шведский ученый Никлаус Вирт — создатель языка программирования Pascal.

Паскаль. История создания и развитие языка программирования

Исследование изменений и развития языка программирования Паскаль со времен его создания в 1970 году до современности, включая различные модификации и диалекты. blaise, pascal, блез, паскаль Машина Паскаля. Кто и когда создал язык программирования Паскаль, история возникновения. В конце 1970-х в рамках конкурса Министерства обороны США на разработку нового языка для программирования встроенных систем Вирт вместе с другими учеными создал язык Ада, но в конкурсе все же победил проект, основанный на Паскале. Француз сделал достижения, которые стали основополагающими для будущего поколения: Паскаль стоял у истоков информатики, доказал существование атмосферного давления и придумал суммирующую машину, ставшую прототипом калькулятора.

Рождение Паскаля

  • Летопись языков Паскаль
  • Кто создал Паскаль: когда придумали язык программирования, история возникновения
  • Популярные курсы
  • Паскаль (язык программирования)

В Новый год умер создатель языка программирования Pascal Никлаус Вирт

Классы задаются с помощью типа object, аналогичного record, который кроме полей данных может содержать заголовки процедур и методов. Имена описываемых методов следуют за именем класса через точку. Конструктор и деструктор задаются как обычные процедуры, но вместо идентификатора procedure задаются ключевые слова constructor и destructor. Поддерживаются единичное наследование, полиморфизм классов , механизм виртуальных методов слово virtual после заголовка метода класса. Существуют и динамические методы в TP описываются путём добавления целого числа после слова virtual и используются преимущественно для обработки сообщений; в Delphi и FreePascal для этих целей используется слово message, а для создания обычных динамических методов — слово dynamic , отличающиеся меньшим использованием памяти и меньшей скоростью вызова за счёт отсутствия дублирования динамических методов предков в VMT потомка однако FreePascal не делает различий между виртуальными и динамическими методами.

В диалекте Delphi классы могут также конструироваться с помощью слова class причём взаимное наследование с object-классами не допускается и введены интерфейсы interface — все методы абстрактные и не могут содержать полей данных. Все классы созданные с помощью class являются наследниками TObject, все интерфейсы происходят от IUnknown. Классы, созданные с помощью class, могут реализовывать несколько интерфейсов. Переменная такого класса в отличие от класса object хранит адрес экземпляра класса в памяти, значение nil используется для указания пустой ссылки, поэтому для освобождения объекта в TObject определён специальный метод free, проверяющий ссылку на nil и вызывающий виртуальный деструктор Destroy.

Create; MyObj. В первом случае использование MyObj. FProp поле объекта было изменено непосредственно, в итоге, методы объекта не будут подозревать, что это поле было ранее изменено; в более сложном случае они могут полагаться на то, что поле неизменно, либо же полю может быть присвоено значение, недопустимое для данного объекта. Во втором случае значение присваивается непосредственно свойству объекта, которое ссылается на вызов метода, корректно обрабатывающего изменение данного поля.

Этот подход удобен, если объект связан с визуальным элементом: непосредственное изменение поля, отвечающего, например, за ширину элемента, никак не отразится на самом визуальном элементе, а объект будет «дезинформирован» относительно реальных размеров элемента. Корректным подходом без использования свойств является разработка методов на получение и установку любого значения поля, но работа с такими методами будет менее удобна, например, вместо последней строки надо было бы написать MyObj. SetProp MyObj. GetProp следовало бы написать для унификации доступа.

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

Всё это может быть сделано в теле модуля, либо в секции инициализации. Действия, обратные инициализации, делаются в секции финализации. Порядок инициализации и финализации модулей не определён никакими стандартами, но для статически откомпилированных программ где модуль либо компилируется в один исполняемый файл с главной программой, либо находится в отдельной динамической библиотеке, но загружается на этапе первоначальной загрузки , компилятор всегда гарантирует, что инициализация будет выполнена до момента первого использования модуля. Финализация выполняется при завершении работы программы, после завершения главного модуля, так, что используемые модули финализируются позже, чем использующие их. В случае динамической загрузки модулей, управляемой самим программистом, инициализаторы выполняются при загрузке, то есть в момент, когда команда загрузки модуля вернула управление, инициализатор его уже выполнен.

Финализатор выполняется после выгрузки, обычно — при выполнении команды выгрузки модуля. Если эта команда не вызывается, динамически загруженные модули финализируются так же, как все остальные — при завершении программы. Объектно-ориентированное программирование Этот раздел не завершён. Вы поможете проекту, исправив и дополнив его. Объектно-ориентированное программирование ООП — это технология создания сложного программного обеспечения, которое основано на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию с наследованием свойств. Основное достоинство ООП — это сокращение количества межмодульных вызовов и уменьшение объёмов информации передаваемой между модулями. Это достигается за счет более полной локализации данных и интегрирования их с подпрограммами обработки.

Основные недостатки в ООП — это некоторое снижение быстродействия из-за более сложной организации программной системы, а также, как правило, заметное увеличение объёма бинарного кода особенно при использовании стандартных библиотек классов в небольших программах из-за того, что большинство современных компиляторов и компоновщиков не способны выявить и удалить весь код, приходящийся на неиспользуемые классы, виртуальные методы и другие элементы ООП. В Object Pascal классы задаются с помощью типа object, аналогичного record, который кроме полей данных может содержать заголовки процедур и функций они называются методами. Имена описываемых методов следуют за именем класса через точку. Конструктор и деструктор задаются как обычные процедуры, но вместо идентификатора procedure задаются ключевые слова constructor и destructor. Поддерживаются единичное наследование, полиморфизм классов , механизм виртуальных методов слово virtual после заголовка метода класса. Существуют и динамические методы в TP описываются путём добавления целого числа после слова virtual и используются преимущественно для обработки сообщений; в Delphi и FreePascal для этих целей используется слово message, а для создания обычных динамических методов — слово dynamic , отличающиеся меньшим использованием памяти и меньшей скоростью вызова за счёт отсутствия дублирования динамических методов предков в VMT потомка однако FreePascal не делает различий между виртуальными и динамическими методами. В диалекте Delphi классы могут также конструироваться с помощью слова class причём взаимное наследование с object-классами не допускается и введены интерфейсы interface — все методы абстрактные и не могут содержать полей данных.

Все классы созданные с помощью class являются наследниками TObject, все интерфейсы происходят от IUnknown. Классы, созданные с помощью class, могут реализовывать несколько интерфейсов. Переменная такого класса в отличие от класса object хранит адрес экземпляра класса в памяти, значение nil используется для указания пустой ссылки, поэтому для освобождения объекта в TObject определен специальный метод free, проверяющий ссылку на nil и вызывающий виртуальный деструктор Destroy. Create; MyObj. В первом случае использование MyObj. FProp поле объекта было изменено непосредственно, в итоге, методы объекта не будут подозревать, что это поле было ранее изменено; в более сложном случае они могут полагаться на то, что поле неизменно, либо же полю может быть присвоено значение, недопустимое для данного объекта.

В 1971 году Вирт представил описание языка Pascal. Он описал его как небольшой язык с уклоном в структурное программирование и систематизированные данные. Основной целью было обучение студентов профессиональному программированию. Однако Pascal также был эффективным для решения сложных задач. За два-три года он завоевал популярность среди программистов и преподавателей, став одним из наиболее популярных алгоритмических языков в 1990-е. В 1970-х годах Вирт совместно с Хоаром и Дейкстрой разработал технологию структурного программирования. В 1975 году он создал язык Modula, где воплотил идеи модульного программирования с четко определенными интерфейсами и параллельного программирования. В разные периоды времени с 1982 по 1984 и с 1988 по 1990 годы Вирт возглавлял факультет компьютерных наук в ETH.

Он работал доцентом на факультете компьютерных наук Стэмфордского университета и профессором информатики в Швейцарской высшей технической школа в Цюриха , откуда вышел на пенсию в 1999 г. Фото: Wikipedia Никлаус Вирт, возможно, во время выступления в Уральском государственном университете За время преподавательской работы Вирт дважды брал годичные творческие отпуска, чтобы поработать в лаборатории Xerox PARC , известной созданием компьютерной мыши, оконного интерфейса и прочими разработками, ныне получившими повсеместное распространение. Никлаусу Вирту была присуждена ученая степень Почетного доктора Российской академии наук. Языки Никлауса Вирта Самое известное творение Никлауса Вирта - язык программирования Pascal , разработанный им в 1970 г. Помимо него Никлаус Вирт был главным создателем языков программирования Euler в 1965 г.

Блез Паскаль

Язык программирования "Паскаль" швейцарским учёным Никлаусом Виртом в 1968—1969 годах. "Паскаль" назван так в честь выдающегося математика и физика Блеза Паскаля. Под его руководством в 1970 году был создан язык Pascal, до сих пор широко применяемый в начальном обучении программированию, в том числе в российских школах, а также ставший основой для ряда других языков. Язык программирования Pascal был создан Никлаусом Виртом, и назван в честь французского философа и математика XVII в. Блеза Паскаля. Блез Паскаль, Blaise Pascal (фр.) родился 19 июня 1623 в Клермон-Ферране, ныне французский регион Овернь, а умер 19 августа 1662 в Париже. Язык программирования Паскаль был создан швейцарским ученым Никлаусом Виртом.

История создания Pascal

Одной из самых известных и распространенных модификаций языка Паскаль является Turbo Pascal. Разработанный компанией Borland в 1983 году, Turbo Pascal предоставил разработчикам возможность создавать эффективные программы для IBM PC и совместимых компьютеров. Turbo Pascal также включал набор графических и звуковых библиотек, что добавило языку больше возможностей. Однако самой важной и значимой модификацией языка Паскаль стал объектно-ориентированный язык программирования Delphi. Созданный Борисом Шаровым в 1995 году, Delphi позволил разработчикам создавать сложные графические приложения для Windows. Он также предоставил разработчикам удобную среду программирования с широкими возможностями для разработки и отладки кода. Каждая из этих версий языка вносит свои улучшения и дополнения, делая Паскаль более мощным и удобным для разработки программ любого уровня сложности. Популярность Паскаля в учебных заведениях Благодаря своей простоте, Паскаль стал прекрасным инструментом для практического обучения основам программирования.

Он позволяет студентам изучать базовые концепции, такие как переменные, циклы, условные операторы и процедуры, в понятной форме. Паскаль также обладает строгой типизацией, что помогает студентам осознать важность правильного объявления и использования переменных. Это позволяет избежать множества ошибок, которые могут возникнуть из-за неправильного типа данных. Паскаль имеет достаточно большую поддержку в учебных материалах и учебниках, что также делает его привлекательным для преподавания и изучения. Многие учебные заведения используют Паскаль как основной язык программирования для обучения студентов, поскольку он служит отличной введением в программирование и может легко быть заменен более сложными языками в последующих курсах. В то же время, Паскаль имеет свои ограничения и предназначен в основном для обучения и разработки маломасштабных программ.

NET используя стандартную библиотеку классов. Планируется продажа IDE-сектора компании. Группа сторонников свободного программного обеспечения организовала сбор средств для покупки у Borland прав на среду разработки и компилятор Однако в ноябре того же года было принято решение отказаться от продажи IDE бизнеса. Тем не менее, разработкой IDE продуктов теперь будет заниматься новая компания — CodeGear, которая будет финансово полностью подконтрольна Borland. А в марте 2007 года CodeGear порадовала пользователей обновленной линейкой продуктов Delphi 2007 for Win32 и выходом совершенно нового продукта Delphi 2007 for PHP. Новые версии выходят практически каждый год. В них реализуются все новые мастера, компоненты и технологии программирования. Действительно, процесс разработки в Delphi предельно упрощен. Вы просто помещаете нужные компоненты на поверхность Windows-окна в Delphi оно называется формой и настраиваете их свойства с помощью специального инструмента Object Inspector. С его помощью можно связать события этих компонентов нажатие на кнопку, выбор мышью элемента в списке и т. Причем разработчик получает в свое распоряжение мощные средства отладки вплоть до пошагового выполнения команд процессора , удобную контекстную справочную систему в том числе и по Microsoft API , средства коллективной работы над проектом, всего просто не перечислить. Появившаяся, начиная с Delphi 3, поддержка многозвенной технологии multi-tiered доступа к данным позволяет создавать масштабируемые приложения относительно слабо зависящие от сервера БД за счет перенесения методов обработки информации бизнес-правил на среднее звено. Блестящий и прогрессивный Borland Delphi Как уже говорилось ранее, в Delphi используется язык Object Pascal, который постоянно расширяется и дополняется Borland. Язык в полной мере поддерживает все требования, предъявляемые к объектно-ориентированному языку программирования. Как и положено строго типизированному языку, классы поддерживают только простое наследование, но зато интерфейсы могут иметь сразу несколько предков. К числу удачных, на взгляд автора, относится также поддержка длинных строк в формате WideChar и AnsiChar. Последний тип AnsiString позволяет использовать все прелести динамического размещения информации в памяти без всяких забот о ее выделении и сборке мусора, Delphi делает это автоматически.

В качестве компилятора используется FreePascal. Там и поддержка х32, и х64, и 64-битные типы, и компиляция DLL, и куча других плюшек. Через FastCGI можно хоть бекенд для веб-сервера писать, фреймворки тоже есть. Например, из Индонезии один энтузиаст клепает fastplaz. Еще есть BrookFramework.

По умолчанию в Delphi и FreePascal в качестве String используется тип AnsiString, память под который выделяется и освобождается компилятором динамически, а максимальный размер строки в текущих реализациях составляет 2 гигабайта. Кроме того, в Delphi и Free Pascal в качестве string может использоваться тип UnicodeString, где применяется 16-битное представление символов в кодировке UCS-2 , при этом средства преобразования из однобайтовых строк в многобайтовые и обратно в стандартной библиотеке FPC отсутствуют, но имеются в Delphi. Типизированный указатель может быть определён опережающее определение перед объявлением типа, на который он ссылается. Это одно из исключений к правилу, которое гласит, что любой элемент константа, тип, переменная, процедура, функция должен быть объявлен перед тем, как используется. Введение этого исключения позволяет организовывать рекуррентные определения структур данных, в том числе такие, как линейные списки , стеки , очереди , деревья , включая указатель на запись в описание этой записи см. Уже в TP существовал полноправный процедурный тип. В объявлении типа ставится заголовок процедуры либо функции без имени , обобщённо описывающий интерфейс подпрограммы. Значение этого типа содержит указатель на подпрограмму с заголовком, соответствующую описанному в объявлении типа. С помощью идентификатора переменной может происходить вызов соответствующей процедуры или функции. Паскаль — язык структурного программирования , что означает, что программа состоит из выполняющихся последовательно отдельных стандартных операторов, в идеале — без использования команды GOTO. Такая конструкция, представляющая собой обычный оператор или блок, называется сложным оператором.

Паскаль (язык программирования)

это структурированный язык программирования, что означает, что поток управления структурирован в стандартные операторы, обычно без команд goto. Швейцарский ученый Никлаус Вирт, создатель и ведущий проектировщик языков программирования Pascal, Modula-2, умер в возрасте 89 лет. История языка программирования Паскаль. By marina1991. Apr 24, 1968. создатель языка программирования Паскаль (Pascal).

Умер Никлаус Вирт, создатель языка программирования Pascal

Умер создатель языка программирования Pascal История создания и использования языка программирования Паскаль.
История развития языка программирования Паскаль Его работы по созданию языков программирования Pascal и Oberon, а также его методологический подход к обучению и разработке программного обеспечения, оказали глубокое влияние на целые поколения программистов и исследователей.

В честь кого назван язык программирования Паскаль — Кратко справка

В 1984 году он стал лауреатом самой престижной премии в сфере информатики. Язык программирования Паскаль был создан в 1970 году профессором Никлаусом Виртом в качестве академического языка программирования для обучения студентов. На язык Pascal оказал влияние язык программирования Algol 68, в разработке которого тоже участвовал Вирт. Синтаксис языка Паскаль похож на синтаксис Algol, по этому его еще называют Алголо-подобным языком. Никлаус Вирт после создания языка Паскаль, продолжил свою работу и создал еще более простой и лаконичный язык программирования Oberon.

Отличие между побитовыми и логическими операциями состоит в том, что побитовые поразрядные операции выполняются над отдельными битами операндов, а не над их значением в десятичном обычно представлении. Выделяется понятие порядковых типов данных ordinal , к ним относятся целые типы знаковые и беззнаковые , логический boolean , символьный char , перечислимые типы и типы-диапазоны. Порядковые типы задаются целым числом кодом , которое можно получить с помощью функции ord. Все операции, выполняемые над порядковыми типами, выполняются с их кодами. Диапазоны содержат подмножество значений других порядковых типов: var x: 1..

В Pascal, в отличие от Си-подобных языков, с типами boolean и char арифметические целочисленные операции не определены. В отличие от многих распространённых языков, Pascal поддерживает специальный тип данных множество: var set1: set of 1.. В паскале тип множество может содержать только однотипные элементы порядкового типа. Эта особенность широко используется и обычно быстрее эквивалентной конструкции в языке, не поддерживающем множества. К примеру, для большинства компиляторов Паскаля: if i in [5.. В Паскале Йенсен и Вирта строки представлялись как упакованные массивы символов; следовательно, они имели фиксированную длину и обычно дополнялись до этой длины пробелами.

Язык программирования Паскаль имеет несколько особенностей. Во-первых, он является статически типизированным языком, то есть переменные должны быть объявлены с указанием их типа. Во-вторых, Паскаль содержит множество встроенных функций и процедур, что делает разработку программ более удобной и быстрой. В-третьих, в Паскале используются блоки кода, обозначаемые ключевыми словами begin и end, для организации программы. Какие языки программирования основаны на Паскале? Язык программирования Паскаль оказал значительное влияние на развитие других языков программирования. Delphi — это объектно-ориентированная разработка Паскаля, которая обеспечивает удобный интерфейс разработки приложений для Windows. Oberon — это язык программирования, разработанный Никлаусом Виртом после Паскаля. Modula-2 и Ada также базируются на Паскале и широко использовались в области разработки системного и встроенного программного обеспечения.

Microsoft с Borland поделили рынок, разведя ветви Си и Паскаля еще дальше друг от друга. Что касается Хейльсберга, то он 13 лет проработал в компании и стал руководителем проекта Delphi. В октябре 1996 г. Андерса Хейльсберга за 3 млн. NET, а также автор языка C. Его прежняя компания, вернув себе имя Borland после нескольких лет работы под вывеской Inprise, предпринимает теперь активные шаги по укреплению позиций своего Паскаля в бурно развивающейся ОС Linux. Обеспечивая простоту миграции программ, созданных для Windows на Visual Basic и Object Pascal, в среду Linux под единым инструментарием Kylix, Borland Software намерена нанести серьезный удар по, казалось, незыблемым позициям Microsoft. Он создавался Виртом под воздействием идей Чарльза Энтони Хоара, опубликованных впоследствии в работе "Заметки по структуризации данных" Hoare C. Notes on Data Structuring Academic Press, 1972. Вклад английского ученого в разработку языка был столь значителен, что его смело можно назвать крестным отцом Паскаля. От языка Паскаль принято отсчитывать эпоху структурного программирования. А все началось с того, что известный голландский специалист Эдсгер Дейкстра опубликовал статью "Структурное программирование" Dijkstra E. В ней он предложил ограничить логику управления программы всего тремя формами: следованием sequence , ветвлением selection и циклом iteration. Вирт, правда, не рискнул изъять его из Паскаля. Но главное было в другом: структурное программирование задавало нисходящий принцип разработки пошаговая декомпозиция , предусматривало структурирование логики и данных, за счет простоты и математической основы повышало надежность ПО. Все это органично вписывалось в возможности лаконичного Паскаля. Но существует одно качество, которое нельзя купить таким образом, — это надежность. Цена надежности — это погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить" — так Энтони Хоар определил для себя главный критерий, ставший доминантой и для Вирта. Взвешенный подход, простота и лаконичность — вот залог надежности. Вирт отмечает: "Поддержание языка максимально простым и регулярным всегда было приоритетом в моей работе: описание Паскаля занимало около 50 страниц, Модулы-2 — около 40, а Оберона — и вовсе 16. И я рассматриваю эту тенденцию как прогрессивную. Истинная ценность языков программирования зависит от качества и практичности их абстракций". Характеризуя замысел своего языка, Вирт пишет: "Главной инновацией Паскаля было введение вариативности структур и типов данных подобно тому, как Алгол ввел вариативность управляющих структур. Алгол предлагал только три базовых типа данных: целые и вещественные числа, значения истинности, массивы; Паскаль ввел дополнительные базовые типы и дал возможность определять новые базовые типы перечисление, диапазоны , а также новые виды структурирования: запись, множество, файл последовательность , часть которых была представлена в Коболе. Наиболее важной стала, конечно, рекурсивность структурных описаний и вытекающая из нее возможность осуществлять комбинирование и вложение структур". А что же говорили противники языка? Из всех критических работ по Паскалю, пожалуй, наибольшую известность получила статья Брайана Кернигана "Почему Паскаль не является моим любимым языком программирования". В 1981 г. Поскольку ряд авторитетных журналов отказались ее публиковать, она стала расходиться "нелегальными" путями. В широкой печати ей довелось выйти лишь в 1984 г. Как известно, Керниган вместе с Ритчи готовил подробное описание языка Си, а потому его мнение особенно интересно. Началось все с того, что Керниган решил адаптировать исходные тексты своей книги "Software Tools" с Си для Паскаля. К работе над примерами из книги, как пишет Керниган, он приступил весной 1980 г. Среди достоинств языка Керниган отметил следующие: механизм рекурсии, тип "перечисление", тип "запись", булевы переменные. Из серьезных недостатков он выделил отсутствие поддержки массивов с открытыми границами, неудобство работы со строками, отсутствие статических переменных по отношению к процедурам и функциям , настоятельную потребность в раздельной компиляции, ограниченные средства ввода-вывода. Керниган пишет: "Паскаль может быть превосходным языком для обучения новичков тому, как писать программы... Он определенно оказал воздействие на проектирование новых языков, из которых Ада, пожалуй, является наиболее важным. Но в своем стандартном виде как нынешнем, так и предлагаемом Паскаль не подходит для написания реальных программ". Многие конкретные претензии сделаны по существу. Однако, по всей видимости, Керниган немного лукавил, говоря о недостатках Паскаля и умалчивая о работах Вирта, направленных на их устранение. А ведь к весне 1980 г. Вирт и его коллеги не только уже завершили работы по компьютеру Лилит и языку Модула-2, но и опубликовали их результаты. К тому же в 1977 г. Просчеты при создании Паскаля были устранены в последующих языках швейцарской школы Вирта и его коллег. Все они четко следовали основным тенденциям развития технологии программирования. Программирование структурное Паскаль , модульное Модула-2 , объектно- ориентированное Оберон-2 , компонентное Component Pascal — все это значительные шаги в индустрии ПО. Под этим я понимаю возможность конструирования таких иерархий модулей, когда каждый модуль добавляет новую функциональность в систему. Расширяемое программирование подразумевает, что добавление модуля возможно без необходимости вносить какие-либо изменения в существующие модули — не должно быть необходимости даже их перекомпилировать. Новые модули не только добавляют новые процедуры, но, что более важно, добавляют также новые расширенные типы данных. Мы продемонстрировали практичность и экономичность этого подхода при проектировании Oberon System". Паскаль жив?! Говоря об отстраненном и предвзятом отношении людей к "чужим" языкам, Вирт отмечает: "Многие относятся к стилям и языкам программирования, как к религиозным конфессиям: если вы принадлежите к одной из них, то не можете принадлежать к другой. Но это ложная аналогия, и она сознательно поддерживается по причинам коммерческого порядка". В самом деле, противостояние двух лагерей — Си и Паскаля — все эти годы намеренно поощрялось.

Умер создатель языка программирования Pascal

Язык программирования Паскаль был создан Никлаусом Виртом в 1970 году в Швейцарии. Паскаль. Язык программирования Pascal. Приведем несколько заметок из истории языка программирования Паскаль (Pascal). создатель языка программирования Паскаль (Pascal). Эмблема языка Delphi Delphi (Дельфи) — интегрированная среда программирования, использующая язык Object Pascal, разработанный фирмой Borland и изначально реализованный в её пакете Borland Delphi, от которого и получил в 2003 году своё нынешнее название.

Похожие новости:

Оцените статью
Добавить комментарий