akaRem
akaRem личный блог
22 ноября 2012, 15:52

Неочевидные особенности QPILE

Пишу робота, в процессе выясняются некоторые фишки языка, не зная которых можно нарваться на большие проблемы.

Решил поделиться.

1. Все переменные преобразуются в верхний регистр (относительно очевидная штука) .
Пример.
MYVALUE и myValue — это одни и те же переменные

2. У переменных нет «области видимости» — любая переменная является глобальной в классическом понимании.… и даже «RESULT». Фактически функции — не функции, а блоки кода, которые подставляются в указанные места.

Пример:
FUNC Fn()
 FOR i from 1 TO 5
 ....
FLAG = False
END FUNC 

' тело программы
....
flag = True
FOR i FROM 1 TO 10
 value = Fn() 'теперь i=5, flag = False
....

Следствие
а) либо четко контролировать, где какая переменная используется, либо давать им имена-префиксы, делая переменными уникальными (что сильно усложняет отладку)
б) присваивать RESULT непосредственно перед RETURN
в) там где можно не использовать функции и по возможности не использовать рекурсию (или четко осознавать, что там может происходить)

3. Все аргументы передаются по значению.

4. Есть очень красивая структура создания словаря в одну строку, не плодя переменные:
SET_VALUE(SET_VALUE(CREATE_MAP(),«name1»,«value1»),«name2»,«value2») такого рода запись можно подставлять в параметры к-либо функции
это чуть чуть облегчает отладку — в списке переменных нет того, что не нужно.

5. GET_VALUE всегда возвращает текстовые данные

6. Нумерация таблиц 1… len
Нумерация списков 0… len-1


Какие еще фишки есть?
10 Комментариев
  • Константин Дубровин
    22 ноября 2012, 16:10
    логин можно первой буквой писать
  • Скромнее надо быть
    22 ноября 2012, 16:15
    я охреневаю от этого языка… а ля ассемблер…
  • Maaxee
    22 ноября 2012, 17:43
    иногда управление не попадает в кусок кода
    пока не сделаешь обрамление
    if 1==1
    end if
      • Maaxee
        22 ноября 2012, 17:56
        akaRem, нечасто. но бывает.
  • VDev
    23 ноября 2012, 01:38
    Как программист с 22-летним стажем и десятками изученных (и забытых :)языков, могу только тихо сказать, — какой ужас…
    А почему вы не пользуетесь платформой S#, я помню, там точно есть привод для квика и плазы.
    Написано все на C#, с десяток приводов на разные платформы, вроде как сам S# бесплатный, документация нормальная, есть курсы.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн