Особенности синтаксиса KTurtle

В новых версиях¹ среды KTurtle для программирования на языке Лого появились некоторые особенности в синтаксисе, которые никак не отображены ни в локальной справке ни на странице проекта. Попытаюсь сдесь кратко описать их и дать некоторые рекоммендации несоблюдение которых приводит к утечке памяти, зависанию и прочим неприятностям.

Общее направление изменений — баше-подобие синтасиса. Видимо целью разработчики задались вполне прагматичной — готовить маленьких «программистов» к будущему, как минимум к башу. отсюда и главные особенности:

  • переменные начинаются со знака доллар $
  • операторные скобки теперь не крадратные, а фигурные {}

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

если $переменная == 5
{вперёд 100}

В данном примере программа зациклится и будет бесконечно выполнять содержимое в скобках. В своё время мне пришлось потратить много времени и нервов, чтобы выявить причину².

Работающий вариант:

если $переменная == 5 {
  вперёд 100
}

Открывающая скобка должна быть на той же строке, где условный оператор если.

Здесь замечу ещё одну особенность, с которой пришлось столкнуться при программировании рекурсивных функций. При неправильном оформлении (см. неправильный пример выше) программа просто не работает, а в просмотре структуры программы в виде дерева можно обнаружить лишь часть её. Это сигнал к тому, что что-то неверно. Экспериментировать не рекоммендую, ровно как и работать покомандно — среда может съесть всю память.

Экспорт холста (поля) в svg тоже немного своеобразен — размер 1×1, используется qt. Короче мало кто может его открыть.

ToDo: попробую исправить справку и сообщить разработчикам о плохом поведении среды разработки.

PS: свои версии программ исправил. Они доступны на странице проектов.

PPS: Друзья! Обо всех неточностях, помарках, опечатках и ошибках в моих статьях и заметках сообщайте, пожалуйста, мне любым доступным вам способом.

 


 

¹ конкретные версии не отслеживал — примерно все после kde 4
² это и послужило причиной написания этой статьи
Реклама
Запись опубликована в рубрике СПО, lugnsk, статьи с метками , , , . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s