Блог им. 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


Какие еще фишки есть?
75 | ★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:
Фото
🌍 Техподдержка мирового уровня от SOFL: большой проект для «Лаборатории Касперского»
Друзья, в этом посте делимся подробностями по крупному сервисному проекту с международной ИБ-компанией. Аутсорсинг центр «Софтлайн Коннект»...
🔍Тенденции на рынке жилья и ипотеки в России — 2025—2026
Аналитический центр ДОМ.РФ подвел итоги жилищной сферы в 2025 году и дал прогноз на 2026-ой. ❓Каким был 2025 г. 1. Выросла доля сделок...
Фото
Евро и фунт разошлись: ЕС получает “позитив данных”, UK - “налог неопределенности”
EUR/USD начал неделю резким движением вверх бросая вызов 1.19. Доллар теряет опору из-за переоценки будущих ставок ФРС, евро в этот момент...
Фото
РУСАГРО: выкупить акции и спасти Мошковича - могут ли акции вырасти на 100% от текущих ценах, подробный разбор 
Начинаем покрытие компании РУСАГРО этим постом, надеюсь удастся под микроскопом разглядеть инвестиционную привлекательность или хотя бы сделать...

теги блога akaRem

....все тэги



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