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

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


Сообщения - vlad

Страницы: 1 ... 3 4 [5] 6 7 ... 93
61
В связи с этим возникает вопрос. Помимо исследовательского опыта, удалось извлечь из транслятора практическую пользу? Понадобилось ли переписывать с C++ на что-нибудь другое, или тоже удалось задействовать Emscripten, оставшись на тёплом ламповом? Что думаете по поводу перспектив надвигающегося WebAssembly, который должен усугубить удобство использования С++ в вебе?

До практики так дело и не дошло. Проект в стабильном состоянии, возможно буду еще ковырять (идеи есть, но особого вдохновения в последнее время не было). Ну а вообще транслятор это интересно, само по себе.
Проект на С++ пока живой, в процессе перехода на распоследний С++ (VS2016, XCode8).

WebAssembly это хорошо: как минимум это еще один шаг к закреплению идеи в широких массах, что писать на js руками это моветон.

62
Общий раздел / Re: Найдите ошибку, если она есть.
« : Сентябрь 30, 2016, 07:24:11 am »
Перевыделение памяти при изменении std::vector и невалидные ссылки на элементы после этого - еще не самое "интересное" свойство. Вектор еще может в каких-то ситуациях (зависит от реализации) переприсваивать свои элементы (operator =). Вот я помню помучился с отловом такой баги... Оно проявлялось только на одной платформе (реализация STL) и зависило от последовательности изменений вектора.

63
Общий раздел / Re: Oberon 2016
« : Май 02, 2016, 09:22:12 pm »
Вот дифф относительно старого: http://paste.lisp.org/display/315134

Ну а про массивы - в лучших традициях. Как оно должно себя вести, если размеры массивов не сопадают - ХЗ...

64
Общий раздел / Re: Oberon 2016
« : Май 02, 2016, 03:13:49 pm »
Вот дифф относительно старого: http://paste.lisp.org/display/315134

Хе-хе. Вирта задолбало и он вернул тайпдефы? :)

65
Общий раздел / Re: Oberon rev. 2015 (февраль)
« : Март 07, 2015, 02:51:58 pm »
Ты серьезно?

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

66
Общий раздел / Re: Oberon rev. 2015 (февраль)
« : Март 06, 2015, 11:12:50 pm »
Классно. Больше джаваскрипта, больше, теперь и в обероне!

Ну и еще до кучи - как будут выглядеть переменные p0, p1, p2 для случая:
CASE object.p OF
...

67
Общий раздел / Re: Oberon rev. 2015 (февраль)
« : Март 06, 2015, 09:10:21 pm »
vlad, тебе надо перерыв сделать. Перегрелся походу. Уже не только пендосский, но и родной язык понимать перестал  ;D

Да, пойду проветрюсь.

68
Общий раздел / Re: Oberon rev. 2015 (февраль)
« : Март 06, 2015, 08:35:45 pm »
p0, p1 и p2 - это и есть p
Т.е. в i-той ветке p становится pi

Т.е. все ломается, если я при редактировании поменяю ветки местами, или вставлю новую (в середину) или удалю что-то (из середины). А может и не сломается (переменные-то объявлены в VAR!), а просто будет падать или неправильно работать. Классно. Больше джаваскрипта, больше, теперь и в обероне!

69
Общий раздел / Re: Oberon rev. 2015 (февраль)
« : Март 06, 2015, 03:47:26 am »
Тип Т CASE-выражения может быть типом-записью или типом-указателем. CASE-метки должны быть расширениями типа Т и в i-той ветке с i-той меткой (i-тый тип Ti) CASE-переменная считается имеющей тип Ti

Так понятнее, спасибо :) Т.е., это полное повторение семантики WITH из CP?

P0: p0.b := 10 |
 P1: p1.b := 2.5 |
 P2: p2.b := {0, 2}

Он просто занумеровал ветки суффиксом i для наглядности.

Зачем в примере переменные p0, p1, p2? Можно представить, что пропущено "p0 := p", "p1 := p", "p2 := p" в каждой ветке? Блин, всего 16 страниц описания очень простого языка и вот такая откровенная херня.

P.S. Я пообсуждал эту тему на буржуйском IRC - народ тоже в недоумении, что же Вирт имел ввиду в своем примере. Собственно, там и предположили, что забыто присваивание в каждой ветке.

70
Общий раздел / Re: Oberon rev. 2015 (февраль)
« : Март 03, 2015, 07:14:26 pm »
Семантику CASE Вирт так и не привел в соответствие с Project Oberon.

Я правильно понял, что CASE может исползоваться только для расширений типа, имеющих название вида: <base record> + <number>?

71
Общий раздел / Re: Oberon-07/13: заметки
« : Декабрь 17, 2014, 08:23:36 pm »
Загнал компилятор в профайлер. Самой тормозной процедурой оказалась... вы не поверите! Та самая, которая с Циклом Дейкстры! (который один на весь компилятор):
https://github.com/vladfolts/oberonjs/blob/master/src/ob/Lexer.ob#L111
PROCEDURE isReservedWord(s: STRING; words: STRING): BOOLEAN;
VAR
    i, w: INTEGER;
BEGIN
    WHILE (w < LEN(words))
        & (i < LEN(s))
        & (words[w] = s[i])
        & ((i # 0) OR (w = 0) OR (words[w - 1] = " ")) DO
        INC(w);
        INC(i);
    ELSIF (w < LEN(words))
        & ((i < LEN(s)) OR (words[w] # " ")) DO
        INC(w);
        i := 0;
    END;
    RETURN i = LEN(s)
END isReservedWord;

72
Общий раздел / Re: Oberon-07/13: заметки
« : Декабрь 17, 2014, 04:50:57 am »
Добавил конструкторы и оператор NEW.

В качестве иллюстрации зачем это было нужно в обероне - прошелся по всем NEW и поменял где имело смысл на оператор NEW и конструктор. Вот изменения: https://github.com/vladfolts/oberonjs/commit/ffaaed9b8153952e15c883e37eb5fb072432f0b3
28 files changed, 456 insertions(+), 818 deletions(-)

73
Общий раздел / Re: Oberon-07/13: заметки
« : Декабрь 14, 2014, 05:56:19 am »
Добавил конструкторы и оператор NEW. Никаких придумок, идеи давно уже опробованные в других языках, просто теперь и в обероне.

74
Общий раздел / Re: Числа в Обероне
« : Ноябрь 26, 2014, 06:41:23 pm »
Исходя из этого, OberonJs на соответствует описанию языка Оберон?

Он соответствует виртовскому репорту от 1.10.2013. В моей интерпретации (и с помощью Алексея).

Т.к. условие
( (-5) DIV 3 ) # ( -5 DIV 3 )не соблюдается.

Приоритет унарных операций у Вирта не определен. Согласно грамматике унарный минуc применяется "после" DIV (в отличие, например, от унарного "~"). В результате приоритет получается очень странный. Впрочем, например, приоритет логических операций у Вирта тоже странный.

Я бы сказал, что надо сделать так как в референсном компиляторе Вирта. Алексей нам скажет :)

75
Общий раздел / Re: Числа в Обероне
« : Ноябрь 24, 2014, 01:33:18 pm »
Правильно ли я понимаю, что отрицательные числа в Обероне не включены в определение number?

Ага. Поэтому, например, нельзя использовать отрицательные числа в CASE.

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