Информация об изменениях

Сообщение Re[3]: сколько проходов должно быть у транслятора? от 13.03.2017 7:58

Изменено 13.03.2017 11:25 Privalov

Re[3]: сколько проходов должно быть у транслятора?
Здравствуйте, netch80, Вы писали:

P>>IF IF=THEN THEN THEN=ELSE; ELSE ELSE=IF; /* Правильно так. В эпоху перфокарт из-за такой мелочи можно было легко рабочий день потерять */


N>Да, пример злобный.


Ага. Причем я его не сам придумал. Он откуда-то из студенческих времен, когда нас учили читать исходники по распечатке. Похожие примеры были и для Фортрана.

N>Сочувствую студентам — повторить все хитрости уровня ассемблера (а вряд ли это чисто алгоритмически влезли в 96K) было нетривиально.


Я деталей не знаю. Знаю только, что там в полный рост использовались оверлеи.
чно. Там подсветка не особенно хорошо работала.

N>А сейчас часто грабли — наличие зарезервированных слов


Я на это нарывался несколько раз. Когда к C++ проекту подключали legacy, сделанный на чистом C. Там частенько можно было встретить this в качестве идентификатора. Реже — class и некоторые другие. Переименование таких идентификаторов связвно с известными трудностями.

N>Вообще имеет смысл в новых языках делать где-то так: Символ '$' (например) перед любым идентификатором исключает восприятие этого идентификатора как зарезервированного слова.


Или пользоваться правильными язывами, у которых хорошая поддержка со стороны IDE. Все-таки время перфокарт и IEBUPDTE прошло.

N>И строку в виде @IF $IF=$THEN @THEN $THEN=$ELSE; @ELSE $ELSE=$IF; поймут и человек, и машина.


Достаточно просто "@" пропустить. И не обратить внимания но то, что IDE слово не тем цветом выделено.
Re[3]: сколько проходов должно быть у транслятора?
Здравствуйте, netch80, Вы писали:

P>>IF IF=THEN THEN THEN=ELSE; ELSE ELSE=IF; /* Правильно так. В эпоху перфокарт из-за такой мелочи можно было легко рабочий день потерять */


N>Да, пример злобный.


Ага. Причем я его не сам придумал. Он откуда-то из студенческих времен, когда нас учили читать исходники по распечатке. Похожие примеры были и для Фортрана.

N>Сочувствую студентам — повторить все хитрости уровня ассемблера (а вряд ли это чисто алгоритмически влезли в 96K) было нетривиально.


Я деталей не знаю. Знаю только, что там в полный рост использовались оверлеи.

N>А сейчас часто грабли — наличие зарезервированных слов


Я на это нарывался несколько раз. Когда к C++ проекту подключали legacy, сделанный на чистом C. Там частенько можно было встретить this в качестве идентификатора. Реже — class и некоторые другие. Переименование таких идентификаторов связвно с известными трудностями.

N>Вообще имеет смысл в новых языках делать где-то так: Символ '$' (например) перед любым идентификатором исключает восприятие этого идентификатора как зарезервированного слова.


Или пользоваться правильными язывами, у которых хорошая поддержка со стороны IDE. Все-таки время перфокарт и IEBUPDTE прошло.

N>И строку в виде @IF $IF=$THEN @THEN $THEN=$ELSE; @ELSE $ELSE=$IF; поймут и человек, и машина.


Достаточно просто "@" пропустить. И не обратить внимания но то, что IDE слово не тем цветом выделено.