Конференция "Прочее" » Свой ЯП
 
  • DayGaykin © (04.02.17 00:02) [40]
    В чем новизна?
  • Inovet © (04.02.17 01:57) [41]
    > [37] Dimka Maslov ©   (03.02.17 22:57)
    > Деструктор объекта вызвается при выходе из контекста, где
    > этот объект создан.

    За что я люблю Си++.
  • Сергей Суровцев © (04.02.17 02:03) [42]
    >aka ©   (03.02.17 23:16) [39]

    Гораздо интереснее внутряшка. Т.е. варианты способов хранения имен, типов и значений переменных и массивов, преобразование типов, массивы с разнотипными данными и т.д. А синтаксический разбор он и в Африке такой-же.
  • Dimka Maslov © (04.02.17 11:00) [43]

    aka ©   (03.02.17 23:16) [39]


    На курсовик потянет
  • Юрий Зотов © (04.02.17 11:45) [44]
    > интерпретатор такой функциональности, как в [38] по нынешним
    > институтским меркам это уровень чего? Курсовой, дипломной,
    >  научной работы?


    Науки здесь точно нет, поскольку нет новизны - ни в самой задаче, ни в методе ее решения.

    > Типа данных там два: int и boolean, строк
    > нет, массивы одномерные.


    То есть, это очень сильно обрезанный интерпретатор. А раз он очень сильно обрезанный, значит, и практической ценности тоже не имеет. Соответственно, и на диплом тоже не потянет.

    Остается курсовик.
  • aka © (04.02.17 16:32) [45]

    > Остается курсовик.

    Курсовик, так курсовик. Но у меня прямо какая-то детская радость от того, что это все работает. Стоило только взяться.
    Скрипт сортировки у меня вызывает оргазм.


    module m1;

    #console;

    var
     int a[10];
     int n, max, maxpos;
     int i, j, buf;

    main
     while (n < 10) {
       readln(a[n]);
       n = n + 1;
     }

     
     while (i < 10) {
       max = a[i];
       maxpos = i;
       
       j = i + 1;
       while (j < 10) {
         if (max > a[j]) {
           max = a[j];
           maxpos = j;
         }
     
         j = j + 1;
       }
     
       buf = a[i];
       a[i] = a[maxpos];
       a[maxpos] = buf;
       
       i = i + 1;
     }

     n = 0;
     while (n < 10) {
       println(a[n]);
       n = n + 1;
     }

    end;

  • Юрий Зотов © (04.02.17 16:40) [46]
    А предупреждения выдаются (переменные n и i не инициализированы перед циклами while) ?
  • aka © (04.02.17 16:44) [47]

    > Юрий Зотов ©   (04.02.17 16:40) [46]
    >
    > А предупреждения выдаются (переменные n и i не инициализированы
    > перед циклами while) ?


    Нет не выдаются.
    При запуске все переменные имеют нулевые значения.
  • Dimka Maslov © (04.02.17 17:34) [48]

    > Скрипт сортировки


    Надо стремиться, чтобы скрипт сортировки выглядел примерно так:

    #array a(10) of {rnd(10.0)}
    #sortup(a)

    Это не так изящно и красиво, но имеет бóльшую практическую ценность.
  • Inovet © (04.02.17 18:11) [49]
    > [47] aka ©   (04.02.17 16:44)
    > При запуске все переменные имеют нулевые значения.

    Чем нулевые отличаются от ненулевых?
  • aka © (04.02.17 18:58) [50]

    > Чем нулевые отличаются от ненулевых?

    ?
  • Jeer © (05.02.17 03:54) [51]
    >Чем нулевые отличаются от ненулевых?

    Для расчетов динамических процессов - это важно (начальные условия).
    Во всех остальных случаях- нет никакой разницы между нулем и не нулем.
  • aka © (07.02.17 12:39) [52]

    > aka ©   (01.02.17 15:14) [18]
    >
    > Тестировал только что еще раз:
    >
    > D7 : 1
    > Свой ЯП : 150
    > PHP(c командной строки) : 300



    > То есть, это очень сильно обрезанный интерпретатор. А раз
    > он очень сильно обрезанный, значит, и практической ценности
    > тоже не имеет. Соответственно, и на диплом тоже не потянет.
    >
    >
    > Остается курсовик.

    Иду 7-ми мильными, добавил действия с плавающей точкой. Но теперь:
    D7 : 1
    Свой ЯП : 180
    PHP(c командной строки) : 300
  • Юрий Зотов © (07.02.17 13:04) [53]
    > добавил действия с плавающей точкой

    Надеюсь, Вы сначала добавили их в формальную спецификацию языка, и только после этого  - в интерпретатор?
  • картман © (07.02.17 16:22) [54]

    > сначала добавили их в формальную спецификацию языка, и только
    > после этого  - в интерпретатор?
    >

    и обернуть в транзакцию непременно
  • aka © (09.02.17 23:11) [55]

    > Надеюсь, Вы сначала добавили их в формальную спецификацию
    > языка, и только после этого  - в интерпретатор?

    спецификация потом :)

    Сейчас разработка на стадии унарного минуса, есть вариант сделать как во всех языках т.е.

    а := -b {что дает минус}
    а := --b {что дает плюс}
    а := ---b {что дает минус}
    а := ----b {что дает плюс}

    или запретить более одного унарного минуса, но будет ли это правильно - вопрос.
    С одной стороны - это возможность всех языков, а с другой - не нужный избыточный огород. Как думаете?
  • Kerk © (09.02.17 23:15) [56]
    Так а зачем вводить сугубо искусственные ограничения?

    Выражение может начинаться с унарного минуса.
    Унарный минус ставится перед выражением.

    Какой вывод?
  • aka © (09.02.17 23:31) [57]

    >  Kerk ©   (09.02.17 23:15) [56]
    >
    > Так а зачем вводить сугубо искусственные ограничения?
    >
    > Выражение может начинаться с унарного минуса.
    > Унарный минус ставится перед выражением.
    >
    > Какой вывод?

    Ну так даже проще в реализации. Но это с родни бессмысленности лишних символов, сюда же можно отнести пустые выражение (когда можем наставить сколь угодно ;;;;;;;). А зачем?
  • Юрий Зотов © (09.02.17 23:38) [58]
    > спецификация потом

    Огромное заблуждение. Писать интерпретатор, не имея формального описания языка - это называется "делаю то, сам не знаю что". Сразу можно сказать, что в таком интерпретаторе будет куча глюков Не Вы первый делаете эту ошибку и результат всегда один и тот же.

    Кстати, именно потому, что формального описания еще нет у Вас и возникли затруднения с унарными операциями.
  • aka © (09.02.17 23:51) [59]

    > Кстати, именно потому, что формального описания еще нет
    > у Вас и возникли затруднения с унарными операциями.

    да нет затруднений, есть просто вопрос [55].
    > Огромное заблуждение. Писать интерпретатор, не имея формального
    > описания языка - это называется "делаю то, сам не знаю что"

    А на счет этого даже спорить не буду. Но все дело в том, что занимаюсь я этим сугубо в свое удовольствие. И неделю назад не было не циклов не if else. Просто летел вперед, писал код под воздействием большого интереса - как это все можно реализовать программно.
 
Конференция "Прочее" » Свой ЯП
Есть новые Нет новых   [134431   +10][b:0][p:0.001]