Блог им. akaRem

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

    • 22 ноября 2012, 15:52
    • |
    • akaRem
  • Еще
Пишу робота, в процессе выясняются некоторые фишки языка, не зная которых можно нарваться на большие проблемы.

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

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


Какие еще фишки есть?
79 | ★5
10 комментариев
bar$, Если я правильно понял инструкцию, то USE_CASE_SENSITIVE_CONSTANTS на переменные не влияют…

Зацитирую:
Все строковые константы переводятся автоматически в верхний регистр. Но в случае необходимости можно отменить автоматический перевод символов в верхний регистр. Для этого необходимо между заголовком и телом программы добавить следующую строку: USE_CASE_SENSITIVE_CONSTANTS
При добавлении указанного ключа имена строковых констант не будут переводиться в верхний регистр, а будут оставаться такими, какие они есть.

Т.е. тут речь про строковые константы, типа «SiZ2» — чтобы они не становились «SIZ2», надо вставить ключ.
avatar
akaRem, да, USE_CASE_SENSITIVE_CONSTANTS влияет на значения строковых переменных. Я не очень внимательно прочитал Ваш первый пункт.
avatar
логин можно первой буквой писать
я охреневаю от этого языка… а ля ассемблер…
иногда управление не попадает в кусок кода
пока не сделаешь обрамление
if 1==1
end if
avatar
Maaxee, О_о
Это в каких случаях?
avatar
akaRem, нечасто. но бывает.
avatar
Как программист с 22-летним стажем и десятками изученных (и забытых :)языков, могу только тихо сказать, — какой ужас…
А почему вы не пользуетесь платформой S#, я помню, там точно есть привод для квика и плазы.
Написано все на C#, с десяток приводов на разные платформы, вроде как сам S# бесплатный, документация нормальная, есть курсы.
avatar
VDev, ну я роботов особо не пишу…
Сам раньше так же к QPile относился, спустя неделю общения с ним отношение в принципе, не изменилось, но писать на нем вообще, как оказалось, можно. :) Правда сначала пришлось написать подсветку синтаксиса, ибо без нее тяжко.
Не сильно быстрый язык, но и не настолько тормозной, как пугали.
Он, как оказалось, очень удобен, если надо составить табличку с какими-то важными текущими данными: со сторонними библиотеками получится что-то неадекватно громоздкое, а тут все в Квике, автоматом загружается, работает.

C# не воспринимаю… С одной стороны, зная основы C, не могу понять, что написано даже в хороших, рабочих кодах C#. С другой — это продукт микрософта, а они ничего достойно работающего за последнее время не сделали — все у них глючит. Ну и скриптовые языки я очень люблю. Питон — наше всё! :)
avatar

Читайте на SMART-LAB:
🖥 В2В-РТС в гостях у Market Power
Уже 10 апреля — то есть завтра! — мы поговорим с компанией перед IPO.      🔶 Обсудим: • Планы на IPO и мотивацию: зачем компания выходит на...
Рентабельность на рынке МФО и в Займере
Банк России в своем ежеквартальном обзоре  ключевых показателей МФО указывает на важную тенденцию: на рынке растет разрыв в рентабельности...
Фото
Продажи коротких полисов ОСАГО показывают «иксы»
В 1 квартале 2026 года количество проданных коротких полисов ОСАГО для такси достигло 5,9 млн, превысив в 7 раз показатель предшествующего года,...
Фото
Кто сейчас самый дешевый сбыт? Сводный пост по сбытовым компаниям по отчетам РСБУ за 2025г.
Волгоградэнергосбыт Ставропольэнергосбыт Самараэнерго Мордовэнергосбыт Пермэнергосбыт Новосибирскэнергосбыт...

теги блога akaRem

....все тэги



UPDONW
Новый дизайн