Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - Vartovyj

Страницы: 1 2 3 [4] 5 6 ... 14
46
Ввести возможность инициализации, как это сделано в Активном Обероне, хотя Модула-3 в этом плане мне нравится больше
В Сириусе идеи для модификации Оберона взяты с них?

47
Цитировать
Оберон не является достаточно высокоуровневым языком, где можно было бы писать компактно (скажем попробуйте ка в Обероне инициализировать массив константами - придется нарисовать 100500 присваиваний вместо одного присваивания как в других яызках).
Как решить вопрос?

48
Пиктограммы, символы гораздо сильнее буквенных конструкций по восприятию.

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

50
Несколько идей, насчет избавления от end:
процедуру всегда завершаем return---; с параметрами или без
тоже для конструкции if---then---else---;

51
Это ж надо, сколько понаписывали:)
Все очень просто: что раньше относительно другого используется, то раньше и объявляется, а остальное, независимое - в произвольном порядке. Тоесть, никакой разницы нет так:
N=10
a: int
или так:
a: int
N=10

52
В текущем синтаксисе тоже есть проблема - не очевидно, что порядок секций type, var, const имеет значение (точнее, что есть Единственно Верный Порядок)
Тогда, может, заменим type, var, const на универсальное, скажем, declare, где объявления делаем в произвольном порядке?

53
Тогда нужно все оставлять: type, var, const тогда вероятность ошибки будет минимальной, да и порог вхождения тоже.

54
вспомнил про ма-аленький такой нюанс - мы зациклились на VAR-секции, при этом абсолютно забыв про CONST и TYPE секции, а также про безымянную секцию (но которая также до BEGIN'а) для вложенных процедур.
Ну так просто последовательно объявляем константы, типы, переменные, вложенные процедуры без ключевых слов VAR, CONST и TYPE. Можно обойтись вообще без разделительного знака - компилятор и так легко определит, где закончилась секция объявления.
Что насчет объявления с возможностью инициализации?
proc S(X : array of real) : real
    s, e: real:=0.0, E(x)
    i : int:=0
    while i # len(X)
        s := s + (X[i]-e)*(X[i]-e)
        inc(i);
    return Math.sqrt(s)
end S;

55
Почему не рассматривается объявление переменных вначале процедуры без секции var?
Кроме того, блоков в Обероне нет. Это не Алгол и не Паскаль и не Си.
"Секцию var" рассматриваем и просто как объявление переменных вначале процедуры и как, собственно, выделенную ключевым слов VAR. Если избавляемся от вара и бегина, нужно ли как-то отделять объявление от остального тела процедуры, к примеру ";"?

56
Так нужна секция VAR или лучше как в С?
Как в КАКОМ Си?
Тогда так вопрос: секция VAR или объявление переменных в любом месте внутри блока с использованием ниже объявления?

57
Так нужна секция VAR или лучше как в С?

58
казалось безобидной  и "правильной" замены  :=  на  <- возможно разночтение  (разумеется на уровне человеческого восприятия, компилятор эту проблему выловит)
я против этой замены по чисто эстетическим причинам
Цитировать
идея кастомной инициализации переменных в секции VAR, соответствующая философии языка, - ведет к появлению исключений
отсутствие этой секции, как в Си ведет к исключениям?
Насчет end и ; это как раз причесывание в стиле питона и луа, оставляя особенности оберона.

59
";" также подходит вместо бегина как завершитель секции VAR в процедурах.
Кстати, Вирт уже использовал подобную конструкцию с ";" вместо end:repeat...until...;

60
Насчет end'ов.
Было рассмотрено много примеров мод оберона без использования точки с запятой. Можно сделать так: end оставить в именованых конструкциях, таких как модули, процедуры: end name; а в остальных случаях использовать вместо end, точку с запятой: if...then...else...; while...do...;

Страницы: 1 2 3 [4] 5 6 ... 14