~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ AD75CAE46EE5A30538E73A17FCEF1847__1686685680 ✰
Заголовок документа оригинал.:
✰ Seed7 - Wikipedia ✰
Заголовок документа перевод.:
✰ Сид7 — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Seed7 ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/ad/47/ad75cae46ee5a30538e73a17fcef1847.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/ad/47/ad75cae46ee5a30538e73a17fcef1847__translat.html ✰
Дата и время сохранения документа:
✰ 11.06.2024 06:03:20 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 13 June 2023, at 22:48 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Сид7 — Википедия Jump to content

Сид7

Из Википедии, бесплатной энциклопедии
Сид7
Парадигма мультипарадигмальность : расширяемая , объектно-ориентированная , императивная , структурированная , универсальная , рефлексивная.
Разработано Томас Мертес
Впервые появился 2005 г .; 19 лет назад ( 2005 )
Стабильная версия
2023-05-29 / 369 дней назад [1]
Дисциплина набора текста статический , сильный , безопасный , именительный , манифестный
ТЫ Кроссплатформенность : BSD , Linux , OS X , Unix , Windows.
Лицензия GPL , LGPL (для библиотеки времени выполнения)
Расширения имен файлов .sd7, .s7i
Веб-сайт семя7 .sourceforge .сеть
Основные реализации
открытым исходным кодом эталонная реализация с
Под влиянием
Паскаль , Модуль-2 , Ада , АЛГОЛ 68 , C , C++ , Java

Seed7 расширяемый язык программирования общего назначения, разработанный Томасом Мертесом. Синтаксически он похож на Паскаль и Аду . Наряду со многими другими функциями, он предоставляет механизм расширения. [2] Seed7 поддерживает введение в язык новых элементов синтаксиса и их семантики, а также позволяет определять и записывать новые языковые конструкции в Seed7. [3] Например, программисты могут ввести синтаксис и семантику новых операторов и определяемых пользователем символов операторов . Реализация Seed7 существенно отличается от реализации языков с жестко запрограммированным синтаксисом и семантикой.

Особенности [ править ]

Seed7 поддерживает парадигмы программирования : императивную , объектно-ориентированную (ОО) и универсальную . Он также поддерживает такие функции, как вызов по имени , множественную отправку , перегрузку функций , перегрузку операторов , обработку исключений и арифметику произвольной точности .

Основные функции включают в себя:

Обобщены несколько концепций языка программирования:

Проект Seed7 включает в себя как интерпретатор , так и компилятор . Интерпретатор запускает программы очень быстро, поддерживая быструю разработку программ. Компилятор использует интерфейсы синтаксического анализатора и отражения из библиотеки времени выполнения для создания программы на языке C , которая впоследствии компилируется в машинный код . Скомпилированные программы Seed7 могут иметь производительность, сравнимую с программами на C. [4]

Библиотеки [ править ]

Seed7 имеет множество библиотек, охватывающих такие области, как контейнеры , числовые функции, лексический анализ , манипулирование файлами, работа в сети ( сокеты , безопасность транспортного уровня (TLS/SSL), протокол передачи гипертекста (HTTP), защищенный HTTP ( HTTPS ), протокол передачи файлов (FTP). ), Simple Mail Transfer Protocol (SMTP) и т. д.), графика , растровые и векторные шрифты , независимый от базы данных API , поддержка Common Gateway Interface (CGI), сжатие данных , архивные файлы ( tar , zip , cpio , ar , rpm ), кодировка символов , обработка времени и даты, обработка XML , дайджесты сообщений и многое другое. [5] Эти библиотеки уменьшают необходимость напрямую использовать непереносимые функции операционной системы и сторонние библиотеки (которые не всегда могут присутствовать). Библиотеки Seed7 содержат уровни абстракции для оборудования , операционной системы и сторонних библиотек, например графических библиотек и библиотек баз данных. Другими словами, для перемещения программ Seed7 между разными процессорами или операционными системами не требуется никаких изменений .

библиотека TLS [ править ]

Seed7 имеет собственную реализацию Transport Layer Security . [6] Библиотека включает AES и криптографию на основе эллиптических кривых .

API абстракции базы данных [ править ]

Seed7 предоставляет библиотеку с независимым от базы данных API. [7] Программы могут подключаться к базам данных MySQL , MariaDB , SQLite , PostgreSQL , Oracle , Open Database Connectivity (ODBC), Firebird , InterBase , IBM Db2 и SQL Server . Независимо от базы данных можно создавать подготовленные операторы, можно использовать переменные связывания, выполнять операторы и получать наборы результатов.

История [ править ]

Seed7 основан на MASTER, расширяемом языке программирования, описанном в дипломной и докторской диссертациях Томаса Мертеса. [8] [9] Большинство оригинальных идей MASTER, таких как пользовательские инструкции и операторы, можно найти в Seed7. Прекомпилятор для перевода MASTER в Паскаль был предложен, но не реализован в исходном проекте. В 1989 году началась разработка интерпретатора MASTER под названием HAL. В 2005 году проекты MASTER и HAL были выпущены с открытым исходным кодом под названием проекта Seed7. С тех пор новые версии выпускались каждые две или три недели. По состоянию на 25 апреля 2021 г. проект Seed7 содержит более 500 000 строк исходного кода и несколько сотен страниц документации.

Механизм расширения [ править ]

Расширение включает в себя две части: определение синтаксиса, предоставляющее шаблон для новой синтаксической формы, и стандартную функцию Seed7, используемую для определения семантики. [2]

Определение синтаксиса [ править ]

В определении синтаксиса используется структурированное описание синтаксиса Seed7 (S7SSD). Оператор S7SSD, например

$ синтаксическое выражение: .().  + .() — -> 7;
 

определяет синтаксис + оператор . Правая стрелка ->описывает ассоциативность : Связывание операндов слева направо. С 7 приоритет +оператор определен. Синтаксический шаблон .(). + .() вводится и ограничивается точками ( .). Без точек узор такой () + (). Символ () является нетерминальным символом и + является терминальным символом. [10] S7SSD не различает разные нетерминальные символы . Вместо этого он знает только один нетерминальный символ: ().

Семантическое расширение [ править ]

Определение + оператор для комплексных чисел — это просто определение функции:

const func complex: (в комплексе: summand1) + (в комплексе: summand2) — это функция
   результат
     var complex: сумма — complex.value;
   начинать
     сумма.ре := сумма1.ре + сумма2.ре;
     сумма.им:= сумма1.им + сумма2.им;
   конечная функция;
 

Ссылки [ править ]

  1. ^ Мертес, Томас (29 мая 2023 г.). «Новый выпуск Seed7 29 мая 2023 г.» . Проверено 29 мая 2023 г. - через SourceForge .
  2. ^ Перейти обратно: а б Дэниел Зингаро , «Современные расширяемые языки» , отчет SQRL 47 Университета Макмастера (октябрь 2007 г.), стр. 16 ( альтернативная ссылка ).
  3. ^ Абриал, Жан-Раймонд и Глассер, Уве, «Строгие методы построения и анализа программного обеспечения» , ISBN   978-3-642-11446-5 , Springer, 2010, стр. 166.
  4. ^ Стадфельд, Пол (1 апреля 2010 г.). «В поисках окончательного цикла (включает сравнение производительности Python, Seed7 и C)» . Архивировано из оригинала 25 октября 2013 года . Проверено 19 августа 2019 г.
  5. ^ Библиотеки Seed7
  6. ^ Библиотека Transport Layer Security (TLS), написанная на Seed7.
  7. ^ API абстракции базы данных
  8. ^ Мертес, Томас, «Проектирование расширяемого языка программирования высокого уровня», дипломная работа Венского технологического университета (1984) ( Резюме ) .
  9. ^ Мертес, Томас, «Определение расширяемого языка программирования высокого уровня» , докторская диссертация Венского технологического университета (1986). ( Резюме )
  10. ^ Дэвид Гудеман (26 марта 2015 г.), «Язык программирования Seed7» (в Seed7 вы можете указать такой синтаксис)

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: AD75CAE46EE5A30538E73A17FCEF1847__1686685680
URL1:https://en.wikipedia.org/wiki/Seed7
Заголовок, (Title) документа по адресу, URL1:
Seed7 - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)