Болталка PascalABC.NET

Ну, там много что не касается проблемы, я не сокращал программу (не убирал лишнее). Я же говорю, это нереально, уже 2 раза пришлось делать принудительную перезагрузку.

У меня - StackOverflowException Нужна минимальная программа

Ну, скиньте хотя бы .exe который у вас получается, тоже посмотрю… Или может кто то поможет, у кого тоже СтакОверфлоу, а не зависание винды целиком? (.exe всё равно скиньте).

А, нашёл… Ошибка глупая… А сколько оно в у вас оперативки тратило перед тем как дать StackOverflowException? Посмотрите, пожалуйста, через что то типа Мониторинга ресурсов.

До 4 доходило

Глеб, выкусите это из ошибок

2 лайка

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

Вы имеете в виду async и await? потому что все классы NET, в т.ч. современный Task разумеется присутствуют.

Ну как это нет. Стандартная NET-библиотека кишит параллельностью, всё это можно использовать в Паскале. Вот, в WPFObjects два потока :slight_smile:

А все что вы перечислили – это уже относится к Паскалю?

Разные библиотеки, стандартные и не очень, могут кишеть (? :slight_smile: ) чем угодно, но это еще не делает их реализацию частью возможностей самого языка. С помощью родных конструкций Паскаля нельзя управлять многопоточностью, с помощью классов .NET, псевдоязыка CIL и среды CLR – можно. Но мы же говорим не о скрытых трюках, а о стандартных возможностях языка и его стандартных типах.

Кроме того, для надежной многопоточности в языке хорошо иметь поддержку неизменяемых переменных любого типа, а не неизменность отдельных типов, прибитых гвоздями.

Что касается неизменяемости строк в управляемых языках – это вообще оптимизация для более эффективной организации кучи и сборки мусора, а не для многопоточности.

Есть какое-то противоречие в вашей фразе. Оно странное. Вы сравниваете язык Паскаль и классы .NET. Тогда давайте будем уже сравнивать языки PascalABC.NET и C#.

Ваши попытки сказать, что .NET - библиотеки к PascalABC.NET не имеют отношения я не понимаю.

Чтобы не быть голословным приведите пожалуйста примеры конструкций языка C#, которые поддерживают многопоточность ну и которых нет в PascalABC.NET. Иначе я не пойму, о чем Вы говорите.

Я их не сравниваю, а просто разделяю понятия. Родные конструкции языка и их возможности – это одно, возможности совместимых библиотек и нижележащей платформы – другое. Они между собой слабо связаны и развиваются независимо.

Они к языку имеют отношение только в том смысле, что их как-то можно подключить и использовать в программах на этом языке. Т.е. они имеют отношение к более широкому понятию системы программирования, а не к самому языку – примерно также, как возможности библиотеки LCL являются стандартной составляющей системы программирования Lazarus, а не диалекта языка ObjectPascal, который реализует компилятор FreePascal.

Иными словами, Lazarus – это система программирования в визуальной RAD-среде (1) на языке ObjectPascal (2) и на базе фреймворка LCL (3). Т.е. существует четкое разделение понятий на среду разработки (1), язык (2), базовую платформу (3) и систему программирования (1+2+3).

В PABC.NET есть постоянная путаница этих понятий, из-за того что нет отдельного названия для языка (точнее своего диалекта), который семантически был бы отделен от названия среды и системы программирования.

По случаю предлагаю своё название: ЮФУ-Паскаль – по аналогии с Борланд Паскаль. Или Ростов-Паскаль :neutral_face: Ну, или по-модному: Modern Pascal / Future Pascal / dotPascal.

async / await

Это конструкции для обеспечения многопоточности.

Именно – конструкции для обеспечения многопоточности, которых нет в языке Паскаль, но которые есть в C#. Может быть пока еще нет.

Нет, ошибаетесь. Такая же история с Delphi - с некоторых пор язык программирования Object Pascal стал называться Delphi. А система программирования всегда называлась Delphi.

Странно, что Вы предлагаете другое название при условии что название у языка есть - PascalABC.NET. Посмотрите Википедию.

Да, согласен - async и await нет - всё руки не доходят. Зато lock есть.

Вроде это всё - других конструкций в C# нет.

Язык и библиотеки сейчас тесно связаны друг с другом - теснее чем когда бы то ни было. Многие сахарные конструкции языка реализуются через библиотечные конструкции. Например - кортежи. Или у нас - срезы.

"Это не техника дошла -- это я сама к вам дошла, на лыжах!" (с) Простоквашино

Это не я ошибаюсь, это их маркетологи в какой-то момент взяли и все опять запутали с Delphi! :slight_smile:

Мне все равно как он называется или будет называться, я всего лишь предлагаю разделить эти понятия – ЯП и системы программирования, как минимум (среда разработки не такая уж особенная, чтобы ей отдельное имя давать). Считайте тогда мои предложения вариантами для именования системы программирования.

Аббревиатура SFU Pascal (Southern Federal University) – еще жестче для знающих английский слэнг. :slight_smile:

Сколько ни говори “халва”, слаще не станет :)) Но можно еще DocentPascal :wink:

3 лайка

Но между тем в нём есть что-то особенное…

Особенно если не модерировать раздел

1 лайк