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

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


Сообщения - Vartovyj

Страницы: 1 ... 10 11 [12] 13 14
166
>REFERENCE TO PROCEDURE
Можно ли обойтись без подобных конструкций?

167
Общий раздел / Re: Oberon&INС/DEC
« : Январь 20, 2012, 05:19:51 pm »

168
Общий раздел / Re: Oberon&INС/DEC
« : Январь 20, 2012, 02:47:07 pm »
Мне нравятся Си-подобные конструкции, которые, имхо, очень даже подойдут Оберону:
x:=x+1    |    x++
x:=x+a    |    x+=a

169
Честно признаюсь, что не вижу ни квадратных скобок, ни того, о каких недостатках идет речь. Напишите поподробней.
Прошу прощения, фигурных, конечно же. Недостатки - излишество скобок по сравнению с обероновской конструкцией if.....end

170

На этом примере прекрасно видно недостатки квадратных скобок по сравнению с конструкцией:
if........then
    ............
    else......
end if;   

171
В исходном примере - переменные передаваемые в подпрограммы были помечены служебным словом var, в "улучшенных" - нет - это не одно и тоже. Разумеется, можно без пометки  в ряде случаев обойтись - например, используя глобальные переменные, но это "рецепт" в чем- то аналогичен предложению Алексея , по замене операторных скобок.
Max(a, b: int): int;a, b: int - это в точности: VAR a, b: INTEGER

172
Вот хороший пример того , к чему приводит бездумное фичевание... помимо бегинов под нож попали и var ы- и как по - вашему бедному проггеру помечать выходные переменные? или они не планируются ж)?
Max(a, b: int): int;
    Result: int;
    if a > b then Result := a else Result := b end if;
    return Result;
end Max;
Можно подробней, что не так с выходными переменными?

173
Если я правильно понял, LL- парсеры воспринимают код жестко слева направо. В модифицированном синтаксисе, который мы рассматриваем, это не прокатит, так как требуется некое распознавание кода.

174
Добавлю пример с соседнего форума, автор Jordan:
Исходный код:
PROCEDURE Max(VAR: a, b: INTEGER): INTEGER;
VAR
  Result: INTEGER;
BEGIN
  IF a > b THEN
    Result := a;
  ELSE
    Result := b;
  END;
 
  RETURN Result;
END Max;
Убираем RETURN, PROCEDURE, BEGIN, THEN
Max(a, b: INTEGER): INTEGER;
  IF (a > b)
    Max := a;
  ELSE
    Max := b;
  END;
Max;
Убрать PROCEDURE - идея интересная.
Мой вариант:
Max(a, b: int): int;
    Result: int;
    if a > b then Result := a else Result := b
    end if;
    return Result;
end Max;

175
Че ж сразу серверное? Я вот клиентское хочу. Жабаскрипт задолбал.
Ну, давайте все веб направление возьмем: клиентское+серверное

176
Вообще то компилятор никакого отношения к гую не имеет. Одно с другим не связано никак.
Не нужны гуевые библиотеки, ide

177
В направлении серверного программирования есть еще один плюс: если дело дойдет до создания компилятора, то гораздо легче будет сделать Линуксовую версию, так как Гуй не нужен.

178
Может более перспективным (с точки зрения полезности обсуждния) будет проектировать язык исходя из области его использования? Скажем с Оберонами возможен такой план:
1. Определяемся с областью его оптимального использования
2. Как можно четче описываем ту область на которую мы хотим его расширить
3 Отображаем исходный Оберон на то что ХОТИМ получить
Хорошая идея. В соответствии с этим подходом, предлагаю обсудить вебпрограммирование(серверные приложения - к примеру, движек динамического сайта - социалка, портал, форум, магазин и т.д.), как область оптимального использования. В КП уже сделан в этом направлении шаг - добавили работу со строками.

179
Переделанный пример из книги Вирта:
module ProgramPattern;
import Texts, Oberon;
w: Texts.Writer; //global writer
proc copy(r: Texts.Reader);
    ch: char;
    Texts.Read(r, ch);
    while ~r.eot do Texts.Write(w, ch); Texts.Read(r, ch) end while
end copy
proc SomeCommand*;
    r: Texts.Reader; //local reader
    Texts.OpenReader(r, Oberon.This.text, Oberon.Par.pos);
    copy(r, w); Texts.Append(Oberon.Log, w.buf)
end SomeCommand;
Texts.OpenWriter(w)
end ProgramPattern.

180
В результате будет нечто вроде:
a : REAL[10,20,30];
не понял...
a:[10][20][30] real; //3-х мерный массив?
a:[] int=10,20,30; //объявление массива с инициализацией?

Страницы: 1 ... 10 11 [12] 13 14