-
В чем новизна?
-
> [37] Dimka Maslov © (03.02.17 22:57) > Деструктор объекта вызвается при выходе из контекста, где > этот объект создан.
За что я люблю Си++.
-
>aka © (03.02.17 23:16) [39]
Гораздо интереснее внутряшка. Т.е. варианты способов хранения имен, типов и значений переменных и массивов, преобразование типов, массивы с разнотипными данными и т.д. А синтаксический разбор он и в Африке такой-же.
-
aka © (03.02.17 23:16) [39]
На курсовик потянет
-
> интерпретатор такой функциональности, как в [38] по нынешним > институтским меркам это уровень чего? Курсовой, дипломной, > научной работы?
Науки здесь точно нет, поскольку нет новизны - ни в самой задаче, ни в методе ее решения.
> Типа данных там два: int и boolean, строк > нет, массивы одномерные.
То есть, это очень сильно обрезанный интерпретатор. А раз он очень сильно обрезанный, значит, и практической ценности тоже не имеет. Соответственно, и на диплом тоже не потянет.
Остается курсовик.
-
> Остается курсовик.
Курсовик, так курсовик. Но у меня прямо какая-то детская радость от того, что это все работает. Стоило только взяться. Скрипт сортировки у меня вызывает оргазм.
module m1;
#console;
var
int a[10];
int n, max, maxpos;
int i, j, buf;
main
while (n < 10)
while (i < 10)
j = j + 1;
}
buf = a[i];
a[i] = a[maxpos];
a[maxpos] = buf;
i = i + 1;
}
n = 0;
while (n < 10)
end;
-
А предупреждения выдаются (переменные n и i не инициализированы перед циклами while) ?
-
> Юрий Зотов © (04.02.17 16:40) [46] > > А предупреждения выдаются (переменные n и i не инициализированы > перед циклами while) ?
Нет не выдаются. При запуске все переменные имеют нулевые значения.
-
> Скрипт сортировки
Надо стремиться, чтобы скрипт сортировки выглядел примерно так:
#array a(10) of {rnd(10.0)} #sortup(a)
Это не так изящно и красиво, но имеет бóльшую практическую ценность.
-
> [47] aka © (04.02.17 16:44) > При запуске все переменные имеют нулевые значения.
Чем нулевые отличаются от ненулевых?
-
> Чем нулевые отличаются от ненулевых?
?
-
>Чем нулевые отличаются от ненулевых?
Для расчетов динамических процессов - это важно (начальные условия). Во всех остальных случаях- нет никакой разницы между нулем и не нулем.
-
> aka © (01.02.17 15:14) [18] > > Тестировал только что еще раз: > > D7 : 1 > Свой ЯП : 150 > PHP(c командной строки) : 300
> То есть, это очень сильно обрезанный интерпретатор. А раз > он очень сильно обрезанный, значит, и практической ценности > тоже не имеет. Соответственно, и на диплом тоже не потянет. > > > Остается курсовик.
Иду 7-ми мильными, добавил действия с плавающей точкой. Но теперь: D7 : 1 Свой ЯП : 180 PHP(c командной строки) : 300
-
> добавил действия с плавающей точкой
Надеюсь, Вы сначала добавили их в формальную спецификацию языка, и только после этого - в интерпретатор?
-
> сначала добавили их в формальную спецификацию языка, и только > после этого - в интерпретатор? >
и обернуть в транзакцию непременно
-
> Надеюсь, Вы сначала добавили их в формальную спецификацию > языка, и только после этого - в интерпретатор?
спецификация потом :)
Сейчас разработка на стадии унарного минуса, есть вариант сделать как во всех языках т.е.
а := -b {что дает минус} а := --b {что дает плюс} а := ---b {что дает минус} а := ----b {что дает плюс}
или запретить более одного унарного минуса, но будет ли это правильно - вопрос. С одной стороны - это возможность всех языков, а с другой - не нужный избыточный огород. Как думаете?
-
Так а зачем вводить сугубо искусственные ограничения?
Выражение может начинаться с унарного минуса. Унарный минус ставится перед выражением.
Какой вывод?
-
> Kerk © (09.02.17 23:15) [56] > > Так а зачем вводить сугубо искусственные ограничения? > > Выражение может начинаться с унарного минуса. > Унарный минус ставится перед выражением. > > Какой вывод?
Ну так даже проще в реализации. Но это с родни бессмысленности лишних символов, сюда же можно отнести пустые выражение (когда можем наставить сколь угодно ;;;;;;;). А зачем?
-
> спецификация потом
Огромное заблуждение. Писать интерпретатор, не имея формального описания языка - это называется "делаю то, сам не знаю что". Сразу можно сказать, что в таком интерпретаторе будет куча глюков Не Вы первый делаете эту ошибку и результат всегда один и тот же.
Кстати, именно потому, что формального описания еще нет у Вас и возникли затруднения с унарными операциями.
-
> Кстати, именно потому, что формального описания еще нет > у Вас и возникли затруднения с унарными операциями.
да нет затруднений, есть просто вопрос [55]. > Огромное заблуждение. Писать интерпретатор, не имея формального > описания языка - это называется "делаю то, сам не знаю что"
А на счет этого даже спорить не буду. Но все дело в том, что занимаюсь я этим сугубо в свое удовольствие. И неделю назад не было не циклов не if else. Просто летел вперед, писал код под воздействием большого интереса - как это все можно реализовать программно.
|