Хочу всё знать. Язык Logo

В 1967 году Сеймур Пейперт и Идит Харель задались целью вовлечь в стремительно развивающийся мир программирования детей, причём даже тех, кто с трудом умеет писать. Так появился один из самых старых и популярных образовательных языков программирования — Logo. За 50 лет он получил почти 250 модификаций, среди которых есть русскоязычные, в частности, Логомиры и Перволого.
Вообще Logo до сих пор очень активно используется в школьном и даже дошкольном образовании, а в ряде стран (Англия, Австралия) — это обязательный предмет образовательной программы. Язык Scratch, который сегодня так стремительно набирает популярность, основывается на принципах, заложенных в Logo, усовершенствовав лишь графическую и функциональную составляющие. Так что представляет из себя этот язык и возможно ли найти работу, где он будет востребован? Давайте разбираться.
Черепашьи бега
Забудьте “Hello World!”, изучение Logo начинается со знакомства с черепахой. Это не просто логотип языка, это базисный элемент, цель которого вовлечь ребенка в мир программирования. Черепашья графика — принцип организации вывода графической информации, при котором объект, перемещаясь из нулевой в заданную точку, “рисует” линию. Собственно, название появилось после наблюдения за черепахами, которые перемещаясь по пляжам, оставляют за собой канавку в песке. С подобным типом графики можно поработать во многих языках(Python, C#, Ruby), но именно в Logo она является важнейшим инструментом.

Синтаксис
Несмотря на огромное количество реализаций, касающихся не только возможностей языка Logo, но и даже перевода или сокращения основных команд и функций, общие правила и стандарты неизменны. Для того, чтобы начать обучение ребенка не с долгого теоретического экскурса в структуру программ и отработку кодов машинами, а непосредственно сразу перейти к практике, язык Logo не требует создания тела программы и знаков перехода.
Возвращаясь к нашим черепахам, базовое упражнение в Logo — перемещение, которое задается командами FORWARD (FD, ВПЕРЕД, вп. ) и BACKWARD (BK, НАЗАД, нд. ) и добавлением значения длины требуемого отрезка в пикселах. Собственно после этого можно нажимать кнопку выполнения и созерцать результат.
Команд в базовых версиях Logo всего около 30, а самое сложное, что постигают дети на этом уровне программирования — это циклы. Выглядят они следующим образом:
повторить 255 х = х + 1
цвет RGB( х, х, х)
вперед х
направо 75
>
С одной стороны — ничего сложного, с другой — уже что-то похожее на взрослое программирование.
Неочевидный Logo
За всей этой мишурой и простоватостью, немногие способны разглядеть тот простой факт, что Logo — функциональный язык программирования, способный исполнять серьёзные операции. Просто взгляните на рекурсивное определение факториала в UCBLogo:
to factorial :N
ifelse :N = 0 [output 1] [output :N * factorial :N — 1]
end
to print_factorial :i :N
repeat :N — :i + 1 [(print :i [! =] factorial :i)
make «i sum :i 1]
end
print_factorial 0 16
Действительно, испытав на себе влияние Smalltalk и Lisp, Logo своим примером доказывает, что ФП — не необходимость научиться мыслить иначе, а повод очистить свой разум от стереотипов.
Востребованность
Естественно, что изучив язык Logo в любой из 250 реализаций, вы не сможете найти работу, где бы этот навык пригодился (на момент написания текста, по всей России нашлось 2 вакансии, где Logo шёл в самом конце списка требований. По всему миру нашлось около 40 подобных вакансий). Это прекрасный язык для получения представления о программировании и для общего развития вашего ребенка. А для работы вы наверняка отыщите множество языков куда удобнее и функциональнее.
Лого (язык программирования)
Ло́го (англ. 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] , которые широко используются в школах Великобритании и Австралии. Также в западных школах используются коммерческие реализации MicroWorlds Logo [5] и Imagine Logo. [6]
MSWLogo и FMSLogo поддерживают использование нескольких черепах и трёхмерную графику, а также расширенные возможности ввода-вывода и другие расширения.
Для Mac OS X доступна бесплатная реализация ACSLogo [7] , имеющая достаточно развитый графический интерфейс, локализацию на нескольких языках и позволяющая добавлять собственные локализации.
В России в учебном процессе используются русские локализации LCSI MicroWorlds для Windows и Mac OS X под названием ЛогоМиры и ПервоЛого [8] .
См. также
- KTurtle
- Debian Junior
- Скретч (язык программирования)
Примечания
- ↑The Logo Tree Project
- ↑Berkeley Logo (UCBLogo)
- ↑MSWLogo, An Educational programming language
- ↑ В планы разработчиков входит создание кроссплатформенной версии
- ↑Welcome to LCSI
- ↑Imagine Logo — Educational Software Evaluation — TEEM
- ↑ACSLogo for Mac OS X
- ↑Русскоязычные продукты Лого
Ссылки
- Лого — язык не только для самых маленьких!
- О Лого…
- logo_ru — Сообщество в живом журнале по изучению языка Лого. (По состоянию на 5 марта 2011 г.: сообщения опубликованные в сообществе после 15 января 2009 г. не соответствует заявленой тематике сообщества.)
- История Лого
- Форум по русским языкам программирования и средств разработки
- Раздел «ЯЗЫК ПРОГРАММИРОВАНИЯ ЛОГО» на сайте myROBOT.RU
Литература
- Николов Р., Сендова Е. Начала информатики. Язык Лого / Под ред. Б. Сендова, Пер. c болг. Под ред. А. В. Гиглавого. М.: Гл. ред. физ.-мат. лит., 1989. ISBN 5-02-013998-X
Кто является разработчиком языка программирования лого
УПС, страница пропала с радаров.
*размещая тексты в комментариях ниже, вы автоматически соглашаетесь с пользовательским соглашением
Вам может понравиться Все решебники
Юдовская, Баранов, Ванюшкина
Александрова
Александрова, Загоровская, Богданов
Котова, Лискова
Мерзляк, Полонская, Якир
Мерзляк, Поляков
©Reshak.ru — сборник решебников для учеников старших и средних классов. Здесь можно найти решебники, ГДЗ, переводы текстов по школьной программе. Практически весь материал, собранный на сайте — авторский с подробными пояснениями профильными специалистами. Вы сможете скачать гдз, решебники, улучшить школьные оценки, повысить знания, получить намного больше свободного времени.
Главная задача сайта: помогать школьникам и родителям в решении домашнего задания. Кроме того, весь материал совершенствуется, добавляются новые сборники решений.
кто является разработчиком языка программирования лого информатика 7 класс
Само название языка произошло от английского слова «logo», которое означает «логотип» или «символическое выражение». Важно отметить, что это не акроним и оно не образовано от других слов.
Первоначально язык Logo был создан ученым Сеймуром Пейпертом и его коллегами в Лаборатории искусственного интеллекта. Они разработали интерпретатор для этого языка, позволяющий запускать программы на компьютерах с ограниченными возможностями. Первоначальные программы на Logo были написаны на языке LISP, и их целью было развитие детского мышления и творческого подхода к решению задач.
Основной принцип работы языка Logo заключается в использовании логических операторов и команд для управления трансляцией и движением «черепашки». «Черепашка» была визуализацией робота, которого можно было программировать для выполнения различных задач. Пользователь создавал программу, состоящую из команд, и «черепашка» выполняла их последовательно, двигаясь по поверхности и оставляя след.
Язык Logo оказался чрезвычайно популярным и полезным инструментом для обучения программированию детей в школах и образовательных учреждениях. Он стал не только способом овладения навыками программирования, но и средством развития логического мышления, креативности и коммуникабельности у учеников.
Со временем язык Logo эволюционировал и претерпел изменения. Были созданы различные варианты языка, а также разные реализации интерпретаторов, позволяющих запускать программы на различных платформах. В настоящее время Logo по-прежнему используется в образовательных учреждениях, а также в индустрии разработки программного обеспечения для различных целей.
В заключение, язык программирования Logo имеет интересное происхождение и представляет собой мощный инструмент для обучения программированию и развития мышления. Он сочетает в себе простоту использования и гибкость в решении различных задач. Вместе с тем, Logo остается актуальным и эффективным инструментом в современном мире информационных технологий.