UCBЛоготип
![]() UCBLogo допускает рекурсию — процесс, в котором процедура вызывает сама себя. На изображении спираль создается рекурсивным скриптом. | |
Парадигмы | мультипарадигмальность : функционально- образовательная , процессуальная , рефлексивная. |
---|---|
Семья | Лисп |
Разработано | Брайан Харви |
Разработчики | Дэн ван Блерком, Майкл Кац, Даг Орлеан. Существенный вклад: Фриман Дойч, Кханг Дао, Фред Гилэм, Иегуда Кац, Джордж Миллс, Сэнфорд Оуингс, Рэнди Сарджент. [1] |
Впервые появился | 1992 год |
Стабильная версия | 6.2.1
/ 31 декабря 2020 г |
Дисциплина набора текста | динамичный |
Объем | Динамический |
Язык реализации | С |
Платформа | ИА-32 , x86-64 |
ТЫ | Windows , macOS , Linux |
Лицензия | лицензия GPL |
Веб-сайт | люди |
Под влиянием | |
Лисп | |
Под влиянием | |
Smalltalk , Etoys , Scratch , NetLogo , KTurtle, Rebol |
UCBLogo , также называемый Berkeley Logo , — это язык программирования , диалект Logo , произошедший от Lisp . Это диалект логотипа, призванный стать «минимальным стандартом логотипа». [2]
Он имеет лучшие возможности для обработки списков , файлов , ввода/вывода (I/O) и рекурсии . [3]
Его можно использовать для преподавания большинства концепций информатики, как утверждает Калифорнийского университета в Беркли преподаватель Брайан Харви. [4] сделал это в своей «Стиль логотипа компьютерной науки» . трилогии [5] [6] [7] Это бесплатное программное обеспечение с открытым исходным кодом, выпущенное под лицензией GNU General Public License (GPL). [8]
Дизайн [ править ]
Логотип был разработан с учетом низкого порога и отсутствия потолка, что позволяет новичкам легко войти и при этом удовлетворить потребности опытных пользователей. UCBLogo имеет элементарный графический интерфейс пользователя (GUI), поэтому существует несколько проектов, обеспечивающих лучший интерфейс. MSWLogo и его преемник FMSLogo для Microsoft Windows обычно используются в школах Великобритании и Австралии . [ нужна ссылка ] Для ввода/вывода (I/O) текст может быть записан в командное окно (выходной поток), используя распечатать и в графическое окно, используя этикетка .
Анимация требует как умения рисовать, так и стирать фигуры. Процесс тот же, за исключением того, что в первом случае строка наносится на устройство отображения, а во втором линия удаляется. Если использовать аналогию с черепахой, ручка черепахи должна рисовать, а ручка черепахи должна стирать. Черепаху можно настроить на стирание всего, что находится под ней, с помощью команды ПЕНЕРАЗА ( PE ), а перо можно настроить на возобновление рисования с помощью команды РУЧКА ( PPT ), в UCBLogo.
Ручка [ править ]

Часто используется аналогия с черепахой с ручкой, прикрепленной к ее хвосту. Загон черепахи можно поднимать и опускать, рисуя таким образом элементарную пунктирную линию.
Пример кода:
FD 20 ; draw a line and move
PENUP ; lift the pen so it draws nothing
FD 20 ; move and not draw
PENDOWN ; lower the pen so it draws again
FD 20 ; draw a line and move
PENUP ; lift the pen so it draws nothing
FD 40 ; move and not draw
PENDOWN ; lower the pen so it draws again
RT 20 ; rotate right (clockwise) 20 degrees
Данные [ править ]
В UCBLogo есть три типа данных: слово, список и массив (число — это частный случай слова). Интерпретатор определяет тип данных по контексту; статической типизации нет.
Префикс переменной двоеточием ( :) означает , что содержимое передается по ссылке. Символ двойной кавычки ( " ) означает, что слово оценивается само по себе : оно не состоит из открывающих и закрывающих кавычек, как это происходит во многих других языках. Число представляет собой особый случай самооценки и может использоваться как с предшествующей, так и без нее. цитировать.
переменных Назначение обрабатывается с помощью сделать команду:
make "x sum :y 3
make принимает 2 параметра, второй из которых здесь sum :y "3
. Сумма принимает два «параметра» и является «операцией», поэтому расчет возможен.
Переменные не обязательно объявлять перед использованием; тогда их масштаб становится глобальным. Переменная может быть объявлена local , то его область действия ограничивается этой процедурой и всеми процедурами, которые она вызывает, что называется динамической областью . Вызов процедуры с входными данными (имя, обычно используемое для аргументов в литературе по логотипу) также создает локальные переменные, содержащие значения аргументов.
Logo наследует списки от Lisp , и они являются его основным методом хранения векторов. Преимущество списка перед массивом состоит в том, что его можно бесконечно расширять. Список можно рассматривать как очередь с операторами очереди и удаления из очереди или стек с операциями push и pop. Список свойств — это специальный список, в котором элементы с нечетными числами являются именами свойств, а четные — значениями свойств.
Логотип предоставляет несколько общих структур управления . Есть одна условная конструкция , ifelse test [ do_if_true list ] [do_if_false list]
. Есть три команды итерации ( пока , до тех пор , и повторить ). Рекурсия , а не итерация, является предпочтительной парадигмой обработки Logo.
Logo также предоставляет структуры управления на основе списков. Основная идея состоит в двух списках:
OPERATION [ a list of commands ] [ many data items ]
Каждая из команд применяется поочередно к каждому элементу данных. Существует несколько таких шаблонных команд с такими именами, как КАРТА, ПРИМЕНИТЬ, ФИЛЬТР, FOREACH, УМЕНЬШИТЬ и КАСКАД . Они представляют четыре разновидности итерации шаблона, известные как явный слот, именованная процедура, именованный слот (или лямбда) и текст процедуры.
Синтаксис [ править ]


Команды могут быть записаны в одну или несколько строк. Многие команды имеют мнемонические краткие формы; например ВПЕРЕД и ПРАВЫЕ закодированы ФД и РТ соответственно. Это делает ввод менее обременительным. Все, что написано после ; (точка с запятой) игнорируется, позволяя программисту вставлять комментарии.
; draws a square with sides 100 units long
FORWARD 100
LEFT 90
FORWARD 100
LEFT 90
FORWARD 100
LEFT 90
FORWARD 100
LEFT 90
FD 100 RT 120 FD 100 RT 120 ; draws a triangle
FD 100 RT 120
Программа Hello World в Logo выглядит так:
print [Hello World]
Математика в логотипе использует префикс или польскую нотацию , например: сумма :x :y, произведение :x :y, разность :x :y, частное :x :y . Инфикс также доступен.
Каждая строка состоит из вызовов функций, которые бывают двух типов: команды (которые обычно что-то делают (эффекты), но не возвращают значения), например print и операции (которые просто возвращают значение, его вывод), такие как сумма , сначала или список чтения .
Команда аналогична процедуре Паскаля , а операция аналогична функции Паскаля. Специальное подмножество операций, называемое предикатами , которые просто выводят слово правда или false , обычно пишутся с финалом п . Примеры включают в себя пустойп , словоп и списокп . Выражения могут быть примитивными или определяться пользователем. Выражения могут принимать ноль, один или несколько параметров.
Процедуры можно определить в командной строке, используя команду К ... КОНЕЧНАЯ пара:
TO CHAIR REPEAT 4 [FD 100 RT 90] FD 200 END
Логотип может передавать дополнительную информацию своим словам и возвращать информацию. Процедуре (слову) приказано ожидать чего-то и дать этому чему-то имя. Для этой цели используется двоеточие.
См. также [ править ]
- Микромиры
- StarLogo - язык моделирования на основе агентов.
- NetLogo - страницы языка программирования
Ссылки [ править ]
- ^ Харви, Брайан (1997). Том 1: Символьные вычисления: Благодарности . Стиль логотипа информатики. Том. 1. Пресс-центр Массачусетского технологического института . ISBN 0-262-58148-5 . Проверено 6 мая 2019 г.
{{cite book}}
:|website=
игнорируется ( помогите ) - ^ Соломон, Синтия; Харви, Брайан; Кан, Кен; Либерман, Генри; Миллер, Марк; Мински, Маргарет; Паперт, Артемида; Сильверман, Брайан (июнь 2020 г.). «История логотипа». Учеб. Программа АКМ. Ланг . 4 : 1–66. дои : 10.1145/3386329 . hdl : 1721.1/133952 . S2CID 219012246 .
- ^ «Язык программирования логотипов» . Фонд логотипа . 2012. Архивировано из оригинала 15 августа 2013 г. Проверено 6 мая 2019 г.
- ^ Харви, Брайан. «Брайан Харви» . Электротехника и информатика . Калифорнийский университет в Беркли . Проверено 6 мая 2019 г.
- ^ Харви, Брайан (1997). Том 1: Символические вычисления . Стиль логотипа информатики. Том. 1. Пресс-центр Массачусетского технологического института . ISBN 0-262-58148-5 . Проверено 6 мая 2019 г.
{{cite book}}
:|website=
игнорируется ( помогите ) - ^ Харви, Брайан (1997). Том 2: Передовые методы . Стиль логотипа информатики. Том. 2. Нажмите MIT . ISBN 0-262-58149-3 . Проверено 6 мая 2019 г.
{{cite book}}
:|website=
игнорируется ( помогите ) - ^ Харви, Брайан (1997). Том 3: За пределами программирования . Стиль логотипа информатики. Том. 3. Нажмите MIT . ISBN 0-262-58150-7 . Проверено 6 мая 2019 г.
{{cite book}}
:|website=
игнорируется ( помогите ) - ^ Харви, Брайан (14 сентября 2008 г.). «Выпуск 6.0 логотипа Berkeley теперь доступен по анонимному FTP или через Интернет» . Электротехника и информатика . Калифорнийский университет в Беркли . Проверено 9 мая 2019 г.
Внешние ссылки [ править ]
