Лого (язык программирования)

Поделись знанием:
Перейти к: навигация, поиск
Лого
(англ. Logo)
Появился в:

1967

Автор:

Сеймур Пейперт, Идит Харель

Испытал влияние:

Лисп

Ло́го (англ. Logo) — язык программирования высокого уровня, разработанный в 1967 году Сеймуром Пейпертом и Идит Харель в образовательных целях для обучения детей дошкольного и младшего школьного возраста основным концепциям программирования (рекурсии, расширяемости и пр.).

Logo также обеспечивает среду, в которой дети могут развивать свои навыки рассуждений и решений задач.





Общие сведения

Типичной и ожидаемой частью языка и среды программирования Лого являются средства черепашьей графики, которые, с одной стороны, позволяют придать наглядность обучению программированию, а с другой — очень органично сочетаются с широким использованием рекурсии.

Интерпретаторы Лого существуют для различных платформ и операционных систем: Windows, DOS, Linux, Mac OS, Unix и др. Существует также множество объектно-ориентированных диалектов Лого, таких как Object Logo, вышедший в 1986 году. В 1997 году вышла российская версия — ЛогоМиры.

Брайн Харви, автор трехтомника о стиле программирования на Лого («Computer Science Logo Style») создал Berkeley Logo. Мультиагентные версии Лого — StarLogo и NetLogo.

Типичные реализации Лого (от LCSI, например) предоставляют программисту библиотеку встроенных команд, текстовую консоль интерпретатора и «лист программ», на котором можно разместить инструкции регистрации новых функций. Также обеспечивается как минимум один графический экран, как минимум с одной «черепашкой».

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

Лого более прогрессивен, чем процедурные языки программирования Бейсик и Фортран, которые обычно используются для обучения программированию. Однако, реализации Лого, как правило, не имеют достаточно хорошо разработанных программ для работы с файлами, и это мешает ему получить широкое распространение в качестве языка программирования.

По сути, язык Лого является адаптацией языка Лисп (некоторые даже называют его «Лиспом без скобок»).

Синтаксис и интерпретация

В языке Лого программа представляет собой список «слов».

Как правило, реализации Лого слабо ограничивают перечень допустимых в слове символов, поэтому команды можно называть и по-русски. Более того, многие русскоязычные реализации Лого имеют русскоязычные команды или встроенные русскоязычные синонимы для всех встроенных команд.

Слова в списке разделяются пробелами.

Слово может быть либо командой, либо литералом одного из трёх видов — строковым, числовым или литералом списка. Команда может возвращать значение, тогда она считается функцией. Литералы возвращают своё значение непосредственно. Строковой литерал — оформляется как слово, перед которым ставят двойную кавычку. Слова, состоящие из цифр, интерпретируются как числовые литералы. Для формирования списка из слов в тексте программы их окружают квадратными скобками.

Так же есть команды сохранения и получения значения по имени, но многие реализации дополняют его понятием переменной — вводя компактный синтаксис команды для получения значения переменной. Поэтому обычно для получения значения переменной достаточно написать её имя, предварив его двоеточием.

Имеется специальный синтаксис для передачи в некоторые встроенные команды заранее не фиксированного количества параметров. Для этого предлагается заключать команду и все её параметры в круглые скобки, например: (СПИСОК :A :Б :В :Г 1 2 3 4) Для пользовательских команд такой синтаксис не применим, потому что не предусмотрено синтаксиса для описания обработки переданных таким образом параметров.

Переданный на выполнение интерпретатору список команд выполняется по очереди. Очередное слово интерпретируется как команда из текущего словаря системы. Если она принимает параметры, то интерпретатор выполняет следующее слово из списка, с целью получить значение для передачи его в качестве первого параметра.

Если команда стоит на месте параметра, ожидается что эта команда вернёт значение. А если возвращаемое очередной командой значение не предусмотрено передавать другой команде, система сообщает об ошибке, если такой вызов встретился в тексте программы, либо отображает значение, если вызов команды произведён в интерактивном режиме.

Поддерживается использование привычной инфиксной формы выражений математики и логики на привычных операторах, типа «(2 + 3) * 5» и «2 > 5». Но в связи с тем, что по основным правилам языка сначала идёт команда, а потом её параметры, для базовых арифметических и логических операций в некоторых диалектах (LCSI ЛогоМиры и LogoWriter, например) также существуют команды, с использованием которых выражения принимают вид «умножь сложи 2 3 5» и «больше? 2 5».

Есть команда для расширения словаря пользовательскими командами, она принимает имя новой команды, список параметров и список команд.

Предусмотрены два основных механизма управления ходом выполнения программы: оператор цикла с фиксированным числом повторений и рекурсия.

Hello, World!

TO HELLO
PRINT [Hello, World!]
END

В русской версии языка Лого:

ЭТО ПРИВЕТ
  пиши [Привет, мир!]
КОНЕЦ

Реализации

По состоянию на июнь 2010 года насчитывалось не менее 246 реализаций Лого[1] с момента создания языка.

В настоящее время не имеется единого стандарта языка Лого, хотя широко приняты определённые соглашения о базовых аспектах языка. Диалекты Лого имеют значительные отличия. Ситуация усложняется наличием ряда программ черепашьей графики, которые ошибочно называются «Лого».

Наиболее широко использовавшейся и доминировавшей в своё время реализацией языка была система Apple Logo, разработанная фирмой LCSI для компьютера Apple II и распространённая в 1980-е годы. В Болгарии была произведена локализация этого продукта на болгарский и русский языки для совместимых с Apple II компьютеров серии Правец 8, распространявшаяся под названием «Лого 2.0» и широко использовавшаяся в учебном процессе в Болгарии и СССР. В дальнейшем в России была выпущена русская локализация продукта LCSI для MS-DOS под названием LogoWriter.

На сегодняшний день распространена свободная кроссплатформенная реализация UCBLogo[2], также известная как Berkeley Logo, недостатком которой, однако, является рудиментарный графический интерфейс пользователя.

Для Microsoft Windows доступна система MSWLogo[3] и её более новая версия FMSLogo[4][5], которые широко используются в школах Великобритании и Австралии. Также в западных школах используются коммерческие реализации MicroWorlds Logo[6] и Imagine Logo.[7]

MSWLogo и FMSLogo поддерживают использование нескольких черепах и трёхмерную графику, а также расширенные возможности ввода-вывода и другие расширения.

Для Mac OS X доступна бесплатная реализация ACSLogo[8], имеющая достаточно развитый графический интерфейс, локализацию на нескольких языках и позволяющая добавлять собственные локализации.

В России в учебном процессе используются русские локализации LCSI MicroWorlds для Windows и Mac OS X под названием ЛогоМиры и ПервоЛого[9].

См. также

Напишите отзыв о статье "Лого (язык программирования)"

Примечания

  1. [elica.net/download/papers/LogoTreeProject.pdf The Logo Tree Project]
  2. [www.eecs.berkeley.edu/~bh/logo.html Berkeley Logo (UCBLogo)]
  3. [www.softronix.com/logo.html MSWLogo, An Educational programming language]
  4. [fmslogo.sourceforge.net/ FMSLogo]
  5. В [fmslogo.sourceforge.net/devplan.shtml планы] разработчиков входит создание кроссплатформенной версии
  6. [www.microworlds.com/ Welcome to LCSI]
  7. [www.teem.org.uk/1645/ Imagine Logo — Educational Software Evaluation — TEEM]
  8. [www.alancsmith.co.uk/logo/ ACSLogo for Mac OS X]
  9. [www.int-edu.ru/logo/products.html Русскоязычные продукты Лого]

Ссылки

  • [fio.ifmo.ru/archive/group13/c2wu4/p_logolng.htm Лого — язык не только для самых маленьких!] (недоступная ссылка с 25-03-2014 (3682 дня))
  • [www.int-edu.ru/logo/logo.html О Лого…]
  • [community.livejournal.com/logo_ru/profile logo_ru] — Сообщество в живом журнале по изучению языка Лого. (на 22.12.2014 функционирование сообщества возобновлено)
  • [chernykh.net/content/view/227/240/ История Лого]
  • [rus.24bb.ru Форум по русским языкам программирования и средств разработки]
  • [myrobot.ru/logo/aboutlogo.php Раздел «ЯЗЫК ПРОГРАММИРОВАНИЯ ЛОГО» на сайте myROBOT.RU]
  • [know.my1.ru/lessons/it/logo/menu.html Уроки Logo в среде MSWLogo]

Литература

  • Николов Р., Сендова Е. Начала информатики. Язык Лого / Под ред. Б. Сендова, Пер. c болг. Под ред. А. В. Гиглавого. М.: Гл. ред. физ.-мат. лит., 1989. ISBN 5-02-013998-X

Отрывок, характеризующий Лого (язык программирования)


Только приехав домой, Наташа могла ясно обдумать всё то, что с ней было, и вдруг вспомнив князя Андрея, она ужаснулась, и при всех за чаем, за который все сели после театра, громко ахнула и раскрасневшись выбежала из комнаты. – «Боже мой! Я погибла! сказала она себе. Как я могла допустить до этого?» думала она. Долго она сидела закрыв раскрасневшееся лицо руками, стараясь дать себе ясный отчет в том, что было с нею, и не могла ни понять того, что с ней было, ни того, что она чувствовала. Всё казалось ей темно, неясно и страшно. Там, в этой огромной, освещенной зале, где по мокрым доскам прыгал под музыку с голыми ногами Duport в курточке с блестками, и девицы, и старики, и голая с спокойной и гордой улыбкой Элен в восторге кричали браво, – там под тенью этой Элен, там это было всё ясно и просто; но теперь одной, самой с собой, это было непонятно. – «Что это такое? Что такое этот страх, который я испытывала к нему? Что такое эти угрызения совести, которые я испытываю теперь»? думала она.
Одной старой графине Наташа в состоянии была бы ночью в постели рассказать всё, что она думала. Соня, она знала, с своим строгим и цельным взглядом, или ничего бы не поняла, или ужаснулась бы ее признанию. Наташа одна сама с собой старалась разрешить то, что ее мучило.
«Погибла ли я для любви князя Андрея или нет? спрашивала она себя и с успокоительной усмешкой отвечала себе: Что я за дура, что я спрашиваю это? Что ж со мной было? Ничего. Я ничего не сделала, ничем не вызвала этого. Никто не узнает, и я его не увижу больше никогда, говорила она себе. Стало быть ясно, что ничего не случилось, что не в чем раскаиваться, что князь Андрей может любить меня и такою . Но какою такою ? Ах Боже, Боже мой! зачем его нет тут»! Наташа успокоивалась на мгновенье, но потом опять какой то инстинкт говорил ей, что хотя всё это и правда и хотя ничего не было – инстинкт говорил ей, что вся прежняя чистота любви ее к князю Андрею погибла. И она опять в своем воображении повторяла весь свой разговор с Курагиным и представляла себе лицо, жесты и нежную улыбку этого красивого и смелого человека, в то время как он пожал ее руку.


Анатоль Курагин жил в Москве, потому что отец отослал его из Петербурга, где он проживал больше двадцати тысяч в год деньгами и столько же долгами, которые кредиторы требовали с отца.
Отец объявил сыну, что он в последний раз платит половину его долгов; но только с тем, чтобы он ехал в Москву в должность адъютанта главнокомандующего, которую он ему выхлопотал, и постарался бы там наконец сделать хорошую партию. Он указал ему на княжну Марью и Жюли Карагину.
Анатоль согласился и поехал в Москву, где остановился у Пьера. Пьер принял Анатоля сначала неохотно, но потом привык к нему, иногда ездил с ним на его кутежи и, под предлогом займа, давал ему деньги.
Анатоль, как справедливо говорил про него Шиншин, с тех пор как приехал в Москву, сводил с ума всех московских барынь в особенности тем, что он пренебрегал ими и очевидно предпочитал им цыганок и французских актрис, с главою которых – mademoiselle Georges, как говорили, он был в близких сношениях. Он не пропускал ни одного кутежа у Данилова и других весельчаков Москвы, напролет пил целые ночи, перепивая всех, и бывал на всех вечерах и балах высшего света. Рассказывали про несколько интриг его с московскими дамами, и на балах он ухаживал за некоторыми. Но с девицами, в особенности с богатыми невестами, которые были большей частью все дурны, он не сближался, тем более, что Анатоль, чего никто не знал, кроме самых близких друзей его, был два года тому назад женат. Два года тому назад, во время стоянки его полка в Польше, один польский небогатый помещик заставил Анатоля жениться на своей дочери.
Анатоль весьма скоро бросил свою жену и за деньги, которые он условился высылать тестю, выговорил себе право слыть за холостого человека.
Анатоль был всегда доволен своим положением, собою и другими. Он был инстинктивно всем существом своим убежден в том, что ему нельзя было жить иначе, чем как он жил, и что он никогда в жизни не сделал ничего дурного. Он не был в состоянии обдумать ни того, как его поступки могут отозваться на других, ни того, что может выйти из такого или такого его поступка. Он был убежден, что как утка сотворена так, что она всегда должна жить в воде, так и он сотворен Богом так, что должен жить в тридцать тысяч дохода и занимать всегда высшее положение в обществе. Он так твердо верил в это, что, глядя на него, и другие были убеждены в этом и не отказывали ему ни в высшем положении в свете, ни в деньгах, которые он, очевидно, без отдачи занимал у встречного и поперечного.
Он не был игрок, по крайней мере никогда не желал выигрыша. Он не был тщеславен. Ему было совершенно всё равно, что бы об нем ни думали. Еще менее он мог быть повинен в честолюбии. Он несколько раз дразнил отца, портя свою карьеру, и смеялся над всеми почестями. Он был не скуп и не отказывал никому, кто просил у него. Одно, что он любил, это было веселье и женщины, и так как по его понятиям в этих вкусах не было ничего неблагородного, а обдумать то, что выходило для других людей из удовлетворения его вкусов, он не мог, то в душе своей он считал себя безукоризненным человеком, искренно презирал подлецов и дурных людей и с спокойной совестью высоко носил голову.
У кутил, у этих мужских магдалин, есть тайное чувство сознания невинности, такое же, как и у магдалин женщин, основанное на той же надежде прощения. «Ей всё простится, потому что она много любила, и ему всё простится, потому что он много веселился».
Долохов, в этом году появившийся опять в Москве после своего изгнания и персидских похождений, и ведший роскошную игорную и кутежную жизнь, сблизился с старым петербургским товарищем Курагиным и пользовался им для своих целей.
Анатоль искренно любил Долохова за его ум и удальство. Долохов, которому были нужны имя, знатность, связи Анатоля Курагина для приманки в свое игорное общество богатых молодых людей, не давая ему этого чувствовать, пользовался и забавлялся Курагиным. Кроме расчета, по которому ему был нужен Анатоль, самый процесс управления чужою волей был наслаждением, привычкой и потребностью для Долохова.
Наташа произвела сильное впечатление на Курагина. Он за ужином после театра с приемами знатока разобрал перед Долоховым достоинство ее рук, плеч, ног и волос, и объявил свое решение приволокнуться за нею. Что могло выйти из этого ухаживанья – Анатоль не мог обдумать и знать, как он никогда не знал того, что выйдет из каждого его поступка.
– Хороша, брат, да не про нас, – сказал ему Долохов.
– Я скажу сестре, чтобы она позвала ее обедать, – сказал Анатоль. – А?
– Ты подожди лучше, когда замуж выйдет…
– Ты знаешь, – сказал Анатоль, – j'adore les petites filles: [обожаю девочек:] – сейчас потеряется.
– Ты уж попался раз на petite fille [девочке], – сказал Долохов, знавший про женитьбу Анатоля. – Смотри!
– Ну уж два раза нельзя! А? – сказал Анатоль, добродушно смеясь.


Следующий после театра день Ростовы никуда не ездили и никто не приезжал к ним. Марья Дмитриевна о чем то, скрывая от Наташи, переговаривалась с ее отцом. Наташа догадывалась, что они говорили о старом князе и что то придумывали, и ее беспокоило и оскорбляло это. Она всякую минуту ждала князя Андрея, и два раза в этот день посылала дворника на Вздвиженку узнавать, не приехал ли он. Он не приезжал. Ей было теперь тяжеле, чем первые дни своего приезда. К нетерпению и грусти ее о нем присоединились неприятное воспоминание о свидании с княжной Марьей и с старым князем, и страх и беспокойство, которым она не знала причины. Ей всё казалось, что или он никогда не приедет, или что прежде, чем он приедет, с ней случится что нибудь. Она не могла, как прежде, спокойно и продолжительно, одна сама с собой думать о нем. Как только она начинала думать о нем, к воспоминанию о нем присоединялось воспоминание о старом князе, о княжне Марье и о последнем спектакле, и о Курагине. Ей опять представлялся вопрос, не виновата ли она, не нарушена ли уже ее верность князю Андрею, и опять она заставала себя до малейших подробностей воспоминающею каждое слово, каждый жест, каждый оттенок игры выражения на лице этого человека, умевшего возбудить в ней непонятное для нее и страшное чувство. На взгляд домашних, Наташа казалась оживленнее обыкновенного, но она далеко была не так спокойна и счастлива, как была прежде.
В воскресение утром Марья Дмитриевна пригласила своих гостей к обедни в свой приход Успенья на Могильцах.
– Я этих модных церквей не люблю, – говорила она, видимо гордясь своим свободомыслием. – Везде Бог один. Поп у нас прекрасный, служит прилично, так это благородно, и дьякон тоже. Разве от этого святость какая, что концерты на клиросе поют? Не люблю, одно баловство!