Замечания и предложения

Понятно. Это конечно другая оптимизация.

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

2 лайка

Я и не говорю, что переписывать. В Паскале много своих особенностей. Например то, что локальные переменные работают быстрее глобальных, работа с указателями отличается от C#. Я, кстати, уже спрашивал про оптимизацию с помощью хэша процессора, но никто мне так и не ответил.

1 лайк

Ахо теперь что, без Ульмана пишет? Я когда-то по их книге писал кросс-компилятор… Эх, были же времена…

1 лайк

Если Вы их обнаружили, может быть, стоит говорить о том, чтобы рассказать именно в этом ключе, что быстрее работает и почему?

Прямо здесь рассказать, или в статье?

Как Вы смотрите на то, чтобы добавить какое-нибудь ключевое слово (подобное out - модификатору параметра из C#, или, насколько помню, рез из КуМир). При чтении заголовка подпрограммы можно будет сразу понимать какая переменная не будет считаться инициализированной при входе в тело подпрограммы, и инициализация которой обязательна до завершения подпрограммы.

В языке Паскаль любому формальному параметру, который не имеет описателя var, при вызове подпрограммы должно быть сопоставлено некоторое значение. Нет var - оно копируется в формальный параметр. Есть var - в формальный параметр копируется ссылка. Просто, как мычание, в чем проблема-то?

Переменные автоинициализируются.

@RAlex, может быть, имелся ввиду параметр, доступный из метода только для записи? WriteOnly - параметр?

Я не могу пытаться догадываться, что имелось в виду. Привык читать, что написано, а не между строк.

Ну, там ясно сказано про out - параметр из C#. В C# есть 3 вида параметров:

  1. Обычные параметры

  2. ref - параметры, передаваемые по ссылке. Паскалевский аналог - Var

  3. out - параметры, передаваемые по ссылке и доступные только для записи.

Замечаете, что последнее время что бы не обсуждали - это не про ABC.NET, а или про то, как это сделано в С++/С#, или о том, что этого нет в Delphi? Странно это все. И лично меня потихоньку раздражает. Каждый язык прежде всего должен иметь индивидуальность.

1 лайк

С индивидуальностью у паскаля всё прекрасно, а вот функционала часто не хватает. Лучше, по вашему, предлагать рандомные идеи, а не то что проверено опытом в других языках?

1 лайк

Замечаю, только это не моя была идея. Мне проще придумать, где использовать WriteOnly - свойства, чем out - параметр.

Я скажу грубовато, но просто: не надо выпендриваться. Функционала в языке в рамках того, для чего он предназначался, выше крыши! Уже выкусывать лишнее впору. Понатыкано столько, что не хватит тысячи страниц это все описать.

А разве я где-то писал, что она Ваша? ))

1 лайк

Согласен и с Вами и с Сергеем. Слишком много ненужного функционала, а нужный разработчики откладывают в долгий ящик.

Он имеет. И введение ключевого слова (подобного out) никак не навредит его индивидуальности - все индивидуальное то у него останется.

А я скажу, что не надо тут говорить грубовато. Тут приличный форум и Вы не с кентами с площадки разговариваете.

1 лайк

Я бы предпочел все-таки прочитать, зачем все это надо.

Держите.