User Tag List

Страница 27 из 28 ПерваяПервая ... 232425262728 ПоследняяПоследняя
Показано с 261 по 270 из 275

Тема: FORTH vs компилятор бейсика vs C++/Pascal/остальное

  1. #261

    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    14,295
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    203
    Спасибо Благодарностей получено 
    1,459
    Поблагодарили
    949 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    бегло глянув нашёл такие-же процедуры в форте (автор тот-же) вот и решил

  2. #262

    Регистрация
    18.09.2008
    Адрес
    Донецкая обл.
    Сообщений
    95
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    39
    Поблагодарили
    17 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    goodboy,
    Этот точно быть не может. Даже чисто математически. 32470 bytes free - 32768 bytes (которых нет в 16к спеке) = даже без игры этот форт не помещается в 16к машинку.

  3. #263

    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,966
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    319
    Спасибо Благодарностей получено 
    314
    Поблагодарили
    237 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от inozemcew Посмотреть сообщение
    Как по имени передать результат одной процедуры во входные параметры другой? Как сделать проверку в элементарном вызове A(B(x))
    Да как обычно - immediate часть запустится при компиляции, пропарсит входной поток на имена параметров со всеми нужными ей проверками, скомпилирует выкладку их в стек и вызов скрытой вычислительной части. Разумеется, все параметры (включая функции) должны быть образованы от базового объекта.

    Цитата Сообщение от inozemcew Посмотреть сообщение
    Не сработает, absolute - борландовское расширение.
    сам же дал ссылку на фрипаскаль, и там работает

    Цитата Сообщение от inozemcew Посмотреть сообщение
    Самому не смешно? Чтобы доказать, что в паскале нет проверки ссылочных типов, приходится мудрить с опциями и надеяться на борландовские расширения, которых нет в классическом паскале.
    нет, это автору функции надо верить и надеяться, что её не будут прикручивать к паскалям с подобными расширениями))

    Цитата Сообщение от inozemcew Посмотреть сообщение
    Ключевое слово здесь "можно". Теоретически можно, а на практике это "можно" превращается в секс в гамаке стоя на лыжах. Причем, заметим, что это "можно" - всегда работает только в отдельных частных случаях, при соблюдении неких обязательных условий, и почти никогда не решают проблемы системно, а только через кучу постылей и подпорок, которая с грохотом падает от малейшего чиха.
    теоретически "работает только в отдельных частных случаях, при соблюдении неких обязательных условий"...
    теоретически "почти никогда не решают проблемы системно, а только через кучу постылей и подпорок, которая с грохотом падает от малейшего чиха"...
    ...а практически как всегда: кто не хочет - ищет причины, кто хочет - делает: однократно пишет себе либы по мере надобности и дальше многократно использует (а не ждёт, пока прохвесор переделает компилятор))

    Цитата Сообщение от inozemcew Посмотреть сообщение
    Окей, продемонстрируйте другие версии, с более лучшими особенностями. Не обязательно под спек, под любые Z80-based машинки будет норм. Сравним с нормальными языками и средами.
    именно под спек например https://github.com/programandala-net/solo-forth
    но "под" слабую платформу все нативные средства разработки будут каличные
    хотя в связке с более мощными машинами еще ладно

    Цитата Сообщение от inozemcew Посмотреть сообщение
    Ага, децкий сад, но не работает. Не надо искать, определено "слово" или нет, надо проверить, что оно БУДЕТ ИСПОЛЬЗОВАНО, и только тогда его компилять.
    во-1, МОЖЕТ БЫТЬ использовано (поскольку достижимость не проверяется)
    во-2, сработает, если ранее на то имя скомпилирована заглушка
    в-3, а оно вообще-то надо именно так? в том же soloforth свой, с виду более удобный способ (need tool)

    Цитата Сообщение от inozemcew Посмотреть сообщение
    ZASM это умеет. Еще куча ассемблеров тоже. Форт похоже тут курит бамбук со своими мощами.
    хз что там в остальной куче, но ZASM его как следует не умеет, и приходится искать укуренные решения: http://zxpress.ru/zxnet/code.zx/999
    Прихожу без разрешения, сею смерть и разрушение...

  4. #264

    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,681
    Спасибо Благодарностей отдано 
    2,716
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    130 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    кто хочет - делает: однократно пишет себе либы по мере надобности и дальше многократно использует
    И дальше многократно страдает, поддерживая все эти библиотеки на корявом опасном языке.

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    (а не ждёт, пока прохвесор переделает компилятор))
    Так сам переделай компелятор. Зачем тебе прохвесор. Это будет намного проще, чем пытаться понять, что делает пол-простыни кода на Форте.

  5. #265

    Регистрация
    15.02.2015
    Адрес
    г. Могилёв, Беларусь
    Сообщений
    931
    Спасибо Благодарностей отдано 
    15
    Спасибо Благодарностей получено 
    119
    Поблагодарили
    73 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вообще, мое мнение, у форта была в большей степени искусственая популярность. Была волна популяризации и даже, в какой-то степени, пропаганды. Море книг было по форту. Много фортом увлекались. Однако, это волна сошла. Форт был успешен только во время зачаточного развития ЭВМ. Когда компьютеры стали мощнее и программы сложнее, то от форта отказались. Возможно, от форта отказались даже раньше.
    Думаю, форт продвигали люди с особым складом ума и состоянием сознания, которые тащились от польской нотации и непохожести форта на другие языки. Эти люди в то время занимали непоследнее место в компьютерном мире, и они сформировали кратковременную популярность форта. Жалко тех людей, которые повелись на это. Но вообще, большинство людей, познакомившись с фортом, теряют к нему интерес. И это нормальная реация на форт людей со здоровой психикой.
    Фортом увлекаются люди с измененным сознанием и иным умом. Не стоит им подражать и вестись на их рекламу форта.
    ¡Un momento, señor fiscal!

    Этот пользователь поблагодарил Smalovsky за это полезное сообщение:

    Oleg N. Cher(13.08.2022)

  6. #266

    Регистрация
    20.04.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,870
    Спасибо Благодарностей отдано 
    522
    Спасибо Благодарностей получено 
    251
    Поблагодарили
    225 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    OCaml нормальный язык? Безопасный? Только сколько времени придется убить и все мозги себе затрахать, чтобы написать первую более или менее программу. Да и тяжеловес по генерации кода, а по скорости сравнивают уже не с ассемблером, а с С/C++
    Можно и про китайский такое сказать "увлекаются люди с измененным сознанием и иным умом" Покойный и небезысвестный спектрумистам Иван Макарченко Фортом увлекался и форум создал, который до сих пор живет.
    А ZxSpectrum не сильно изменился по сравнению с IBM PC, так что аргумент про усложнение архитектур и многократно возросшие мощности работает весьма относительно, особенно при отсутствии мощных, специализированных и простых в использовании IDE и инструментов. А желательно еще и интеллектуальных.
    И потом.
    Кому-то интересно продвигать продвинутое, а кому-то слабопродвинутое. Если речь идет о "писателях", а не "читателях". Есть еще FALSE Languаge. Тоже может быть применен к z80 и 8080.
    Последний раз редактировалось andrews; 13.08.2022 в 14:24.

  7. #267

    Регистрация
    18.09.2008
    Адрес
    Донецкая обл.
    Сообщений
    95
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    39
    Поблагодарили
    17 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    immediate часть запустится при компиляции, пропарсит входной поток
    По факту получится вложеный компилятор с другого языка. Почему бы тогда просто не взять нормальный компилятор для нормального языка?


    Цитата Сообщение от Lethargeek Посмотреть сообщение
    сам же дал ссылку на фрипаскаль, и там работает
    Могу дать ссылку на стандарт. Там работать не будет.


    Цитата Сообщение от Lethargeek Посмотреть сообщение
    именно под спек например https://github.com/programandala-net/solo-forth
    Посмотрел. Это просто трындец. Это просто не юзабельно от слова совсем. После этого какой-нибудь древний gens или hisoft паскаль - вершины юзер-френдли.

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    во-1, МОЖЕТ БЫТЬ использовано (поскольку достижимость не проверяется)
    во-2, сработает, если ранее на то имя скомпилирована заглушка
    в-3, а оно вообще-то надо именно так? в том же soloforth свой, с виду более удобный способ (need tool)
    Во-1 важен результат - не используемый код не присутствует в конечной программе.
    Во-2 сколько времени займет компиляние этих всех заглушек, и кто потом будет удалять неиспользуемые.
    В-3 это работает быстро и не отжирает память. А не так need из soloforth, который ползает со скоростью убитой улитки. На реальном спеке этим просто невозможно пользоваться.

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    ZASM его как следует не умеет, и приходится искать укуренные решения:
    Ну почему, решение как раз в стиле форта - куча неочевидных условий, чтобы оно работало приблизительно как надо.

    Этот пользователь поблагодарил inozemcew за это полезное сообщение:

    Oleg N. Cher(20.08.2022)

  8. #268

    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,966
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    319
    Спасибо Благодарностей получено 
    314
    Поблагодарили
    237 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    А зачем? Ну и да, если надо, то могу. Я упоминал про асм-вставки и кодовые процедуры.
    ну то есть в итоге безопасный оберон не справляется и приходится небезопасно ассемблерить

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Так вот. Оберон-система позволяет сгенерировать текст модуля "на лету", тут же его скомпилировать, загрузить и выполнить.
    хде, на спектрумах? это даже на взрослых машина долго получится и памяти потребует еще сколько?
    что противоречит основной причине применения таких приёмчиков - экономии

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Это ты просто хитрожопое условие поставил: "не на уровне загрузки модулей".
    не "хитрожопое", а ключевое для успешных применений на восьмибитках

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    А в Обероне код размещается в модулях.
    и потому он для слабых восьмибиток малопригоден

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Но если тебе ехать надо далеко, то пуп развяжется педали крутить
    мы на спектруме, тут никто уже далеко не едет

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Сравнил. У Мура была всратая утилитка для управления телескопом из консоли. А у Вирта полноценная ОС с графическим интерфейсом, поддержкой мыши-клавы, файловой системой, семафорами, потоками и прочим. И ещё куча приложений а-ля графический редактор. Конечно у Мура вышло минимальнее.
    шта? где логика? каким образом меньшие ограничения мешают минимизировать?

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Но Форт легче только в реализации, а не в работе на нём. Простота Форта уродственна. Простота должна быть такой, как в Обероне.
    так даже сам Вирт не понимает, как должно быть - то он выкинет из оберонов что-нибудь, то вернёт

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Да, Вирт, как минимум, участвовал в работе комитета по стандартизации Algol-60 и разработал сам Algol-W. В Algol-68 его не позвали. Фортран и Лисп были до Паскаля. Си, впрочем, тоже наверно появился раньше. Но современные языки напичканы идеями из Паскаля, Модулы и Оберона, только скобки сишные
    и какими же? чтоб до этого в других не встречались? а то явно на паскаль походит только всратый structured text

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Ну так сними его. Но зато он уместен при поездке на мотоцикле, и его надо просто взять с полки готовый, а не клеить из бумаги и слюней
    проблема в том, что "ради безопасности" снять его можно только вместе с головой (угу, асм-вставки)
    а поклеить можно много разных заранее из чего хочешь - и потом носить или НЕ носить

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Такое - ну ооочень редко нужно.
    аж так редко, что сейчас в каждом утюге по jit-компилятору, а смежную задачу предсказания ветвлений и вовсе решают аппаратно

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Уверен, что если бы для ретроплатформ можно было клепать мощные игрушки на языках высокого уровня, то на асме этого бы никто не делал. Просто деваться некуда.
    "мощные" сравнительно с чем? на любой платформе доступ к железу без посредников заведомо эффективнее
    а просто играбельные аркады на яву на ретроплатформах вполне возможны при опять же в достаточной поддержке железа
    как пример - атари с тормозным бейсиком, чуть ли не самым медленным среди всех распространённых восьмибиток
    но из него был удобный доступ к возможностям железа - аппаратным спрайтам, видеорежимам, эффектам
    и как следствие динамичных игр на бейсике там хватает

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    И дальше многократно страдает, поддерживая все эти библиотеки на корявом опасном языке.
    для кого поддерживать и зачем, если при отладочных средствах форта и прямых руках сразу норм

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Так сам переделай компелятор. Зачем тебе прохвесор. Это будет намного проще, чем пытаться понять, что делает пол-простыни кода на Форте.
    если ты на форте увидел простыню, этот код заведомо хреновый и написанный новичком, испорченным "нормальными" языками
    не стоит тратить время в этом копаться, лучше поискать нормальный код нормального фортера

    - - - Добавлено - - -

    Цитата Сообщение от inozemcew Посмотреть сообщение
    По факту получится вложеный компилятор с другого языка. Почему бы тогда просто не взять нормальный компилятор для нормального языка?
    повнимательней, ответ на этот вопрос уже был дан выше - с тем, что все его удобные возможности сохраняются

    Цитата Сообщение от inozemcew Посмотреть сообщение
    Могу дать ссылку на стандарт. Там работать не будет.
    могу повторить про важность веры и надежды для паскалиста

    Цитата Сообщение от inozemcew Посмотреть сообщение
    Посмотрел. Это просто трындец. Это просто не юзабельно от слова совсем. После этого какой-нибудь древний gens или hisoft паскаль - вершины юзер-френдли.
    ниачом, что конкретно лучше/хуже чего и чем?

    Цитата Сообщение от inozemcew Посмотреть сообщение
    Во-1 важен результат - не используемый код не присутствует в конечной программе.
    использовать "в тексте" и "при выполнении" - вещи разные

    Цитата Сообщение от inozemcew Посмотреть сообщение
    Во-2 сколько времени займет компиляние этих всех заглушек,
    как обычно занимает компиляние стандартного заголовка (немного то есть)
    так ведь и добавление в ассемблерный исходник метки удлинит время компиляции

    Цитата Сообщение от inozemcew Посмотреть сообщение
    и кто потом будет удалять неиспользуемые.
    а откуда бы им взяться, ведь сам добавил - значит, сам планируешь их использовать

    Цитата Сообщение от inozemcew Посмотреть сообщение
    В-3 это работает быстро
    всё оттуда же:
    Цитата Сообщение от http://zxpress.ru/zxnet/code.zx/999
    Работает *ОЧЕHЬ* *медленно*.
    Цитата Сообщение от inozemcew Посмотреть сообщение
    и не отжирает память.
    это как? инклуды и таблица меток память не жрут?

    Цитата Сообщение от inozemcew Посмотреть сообщение
    А не так need из soloforth, который ползает со скоростью убитой улитки. На реальном спеке этим просто невозможно пользоваться.
    индекс догадался включить хотя бы? и ничего, что в данном случае он ползал по исходнику размером около 700 кб? да что из "дружелюбного" на реальном спеке вообще способно столько переварить, и за какое время, если способно? ну, то есть, хотя бы как нарезку из кучи файлов из-за ограниченности тырдоса (это к вопросу о "недружелюбности" блочной файловой системы форта)

    Цитата Сообщение от inozemcew Посмотреть сообщение
    Ну почему, решение как раз в стиле форта - куча неочевидных условий, чтобы оно работало приблизительно как надо.
    вот только почему-то как раз на форте такого не требуется, а на дружелюбных асмах зачем-то нужно)))
    а причина в том, что костыльны сами директивы типа ifused, и потому для их поддержки нужны уже эти костыли второго порядка
    Прихожу без разрешения, сею смерть и разрушение...

  9. #269

    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,681
    Спасибо Благодарностей отдано 
    2,716
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    130 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    безопасный оберон не справляется и приходится небезопасно ассемблерить
    Это общепринятая практика - писать часть рантайма ЯВУ на асме, не говоря уже о библиотеках, где требуется высокая эффективность. Особенно это актуально для более слабых платформ. Так что это не проблема Оберона. Я думал, ты это понимаешь. Нет? Печалька.

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    хде, на спектрумах? это даже на взрослых машина долго получится и памяти потребует еще сколько?
    И на Спектрумах тоже, ничто принципиально не мешает использовать подгрузку, распихивание в страницы 128К+, только на Спеке всё будет не так удобно, чем на мощных платформах.

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    что противоречит основной причине применения таких приёмчиков - экономии
    Вот именно, что это даёт экономию в некоторых случаях. Не зря был придуман приём с виртуальной памятью и dynamic link libraries. Сейчас это общепринятая практика.

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    не "хитрожопое", а ключевое для успешных применений на восьмибитках
    Нет, не ключевое, а именно хитрожопое. Если в языке единица работы с кодом это модуль, а ты сформулировал вопрос так, чтобы было не на уровне модуля.

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    и потому он для слабых восьмибиток малопригоден
    Не поэтому. Оверхед от модулей практически нулевой. Просто так в голове удобнее всё раскладывать по полочкам. А не кучей как в Форте.

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    мы на спектруме, тут никто уже далеко не едет
    Тут каждый едет куда может и хочет.

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    шта? где логика? каким образом меньшие ограничения мешают минимизировать?
    Я бы сказал, что в Форте не меньше ограничений, а больше. Уж для мозгов программиста - так точно.

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    так даже сам Вирт не понимает, как должно быть - то он выкинет из оберонов что-нибудь, то вернёт
    Просто Вирт не вырезал описание единого для всех и всего языка на скале на миллионы веков, а не считает зазорным адаптировать язык по необходимости к задачам, на нём решаемым, что есть правильно.

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    и какими же? чтоб до этого в других не встречались? а то явно на паскаль походит только всратый structured text
    Да массой. Уход от GOTO, структурность, некоторые элементы модульности, рекурсия, ссылочная передача параметров. Я не буду утверждать, что всё придумал именно Вирт, оно тогда витало в воздухе. Но многое - уж точно.

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    проблема в том, что "ради безопасности" снять его можно только вместе с головой (угу, асм-вставки)
    Ты не поверишь, раз уж тебя не получилось убедить, что ездить на мотоцикле в шлеме куда лучше, чем без, ты же у нас крутой кулхацкер, зачем тебе. Но асм-вставки я в Обероне не практикую даже для Спека. Это компромиссная мера - то, о чём просили меня юзеры XDev. Я практикую асмовые реализации отдельных процедур, вынесенные в библиотеки. Там спускаешься на уровень ниже, к коду. Так всегда делают. И везде. Ты ничего другого не придумаешь. И тебе бы мой код не понравился, а мне твой.

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    для кого поддерживать и зачем, если при отладочных средствах форта и прямых руках сразу норм
    Ну может при прямых руках, но при ущемлённом самолюбии и кривых вывернутых мозгах, чур меня, ну нафиг.

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    если ты на форте увидел простыню, этот код заведомо хреновый и написанный новичком, испорченным "нормальными" языками
    не стоит тратить время в этом копаться, лучше поискать нормальный код нормального фортера
    Не, лучше не искать нормальный код нормального фортера, эта задача бесполезна. Даже короткие слова приходится в уме мучительно распаковывать. А на Обероне я сразу пишу то, что думаю.

    В общем, в сухом остатке:

    • Для больших и сложных проектов Оберон подходит, Форт нет.

    • Для впихивания системы и транслятора в 2 Кб Форт подходит, Оберон нет.

    • Для низкоуровневых применений в ограниченных условиях Форт подходит (с оговорками - если нет ограничений на шитый код, критичность по скорости и т.д.), Оберон подходит хуже - просто увеличится количество машкодовых процедур и/или асм-вставок.

    • Для высокоуровневого проектирования Оберон подходит идеально, Форт с огромными оговорками (надо делать новые абстракции).

    • Для безопасного программирования Оберон даёт средства изоляции опасного кода от безопасного. Форт опасен весь и полностью, даже на безобидном на первый взгляд коде.

  10. #270

    Регистрация
    09.12.2016
    Адрес
    г. Коломна
    Сообщений
    38
    Спасибо Благодарностей отдано 
    5
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Не подФортило.

Страница 27 из 28 ПерваяПервая ... 232425262728 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Софт для PC : Pascal, Object Pascal, Delphi
    от hobot в разделе PC-совместимые компьютеры
    Ответов: 0
    Последнее: 02.02.2021, 01:36
  2. Кросс-компилятор бейсика для БК
    от litwr в разделе БК-0010/0011
    Ответов: 2
    Последнее: 30.03.2018, 18:03
  3. Pascal
    от Andrew771 в разделе Программирование
    Ответов: 22
    Последнее: 24.05.2011, 21:20

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •