Logo (linguagem de programação)

logotipo
Remi turtlegrafik.png
Exemplo de saída de logotipo
Dados básicos
Paradigmas : funcional , educacional , processual , reflexivo
Ano de publicação: 1967
Designer: Wally Feurendung, Seymour Papert
Desenvolvedor: Wally Feurendung, Seymour Papert
Digitando : dinâmico
Implementações importantes : UCBLogo e outros
Influenciado por: Lisp
Afetado: Arranhar
Sistema operacional : plataforma cruzada

Logo é uma linguagem de programação funcional orientada para a educação projetada em 1967 por Daniel G. Bobrow , Wally Feursehen , Seymour Papert e Cynthia Solomon . O logotipo é fácil de aprender e foi mais popular na década de 1980, durante a era do computador doméstico .

Em linguagens de programação modernas, como Lingo, existem algumas opções para um logotipo - às vezes na forma de objetos .

Nomeação

“Logo” não é uma  sigla . Foi derivado de Feurweise da palavra grega logos , que aqui significa palavra  ou  pensamento . O conceito de Feurzeig era manipular palavras e frases. O gráfico da tartaruga só foi adicionado mais tarde por Seymour Papert, quando eles se juntaram ao projeto.

Exemplo:

PRINT FIRST [Hallo Welt!]

Hallo

história

Para a época, o Logo tinha um desempenho muito alto graças às listas dinâmicas do Lisp , funções livremente definíveis e recursivamente chamáveis e alguns outros elementos. No entanto, a linguagem de programação não poderia competir com outras "linguagens de programação para iniciantes", como. B. aplicar o BASIC , o que também se deve ao fato de ele ter sido desenvolvido de forma amigável para as crianças e, portanto, subestimado por muitos.

Elementos incomuns na época, como B. um reconhecimento de tipo de dados dinâmico também causou desvantagens de velocidade. Além disso, a filosofia da linguagem de programação contradiz o pensamento de programação estruturada que estava surgindo na época . Normalmente, os loops só podem ser implementados usando recursão ou partes do programa embutidas em listas. A recursão era frequentemente considerada difícil de ler e exigia muita memória e tempo de computação. Um código embutido em dados e, portanto, alterável em tempo de execução foi considerado uma receita para propriedades de programa imprevisíveis e em ambientes multiusuário (portanto, também em redes ) como um problema de segurança.

Gráfico de tartaruga

A especialidade mais conhecida do Logo são os gráficos de tartarugas , nos quais uma ou mais tartarugas virtuais podem ser movidas pela tela , que se necessário desenham uma linha colorida atrás delas. Um desenho pode então ser criado dessa maneira.

Os comandos gráficos de tartaruga mais importantes no LOGO
comando forma curta Descrição Em alemão
Comprimento da FRENTE Comprimento FD A tartaruga / ouriço avança um certo número de unidades Comprimento DIANTEIRO (VW)
Comprimento das costas Comprimento BK A tartaruga / ouriço recua um certo número de unidades Comprimento REVERSE (RW)
Ângulo DIREITO Ângulo RT A tartaruga / ouriço vira um certo ângulo para a direita. Ângulo RIGHT (RE)
Ângulo ESQUERDO Ângulo LT A tartaruga / ouriço vira um certo ângulo para a esquerda. Ângulo ESQUERDO (LK)
CASA A tartaruga / ouriço se move para o centro da tela com uma orientação para cima (0 °) CENTRO
LIMPAR A tela é limpa, a posição da tartaruga / ouriço não muda. IMAGEM APAGADA (LBD)
LIMPAR TELA CS Limpa a tela e retorna a tartaruga / ouriço à sua posição inicial IMAGEM
PENUP PU A caneta é removida da área de desenho. STIFTHOCH (SH)
PENDOWN PD A caneta é colocada na área de desenho. STIFTAB (SA)
HIDETURTLE HT A tartaruga / ouriço fica invisível. OCULTO (VI)
SHOWTURTLE ST A tartaruga / ouriço fica visível. ZEIGEL (ZI)
SETPENCOLOR [ r g b ] SETPC [ r g b ] A cor é atribuída à caneta em proporções RGB (0-255). FARBEIGEL (FI) BRANCO AZUL AMARELO PRETO VERMELHO VERDE LINDE WASSER FUCHSIA SARCELLE OLIVEIRA MARROM CINZA LARANJA ROSA VIOLETA

ou um número, ou FARBEIGEL RGB [% red% green% blue].

Os gráficos da tartaruga são predestinados para desenhos geométricos bidimensionais e curvas fractais como a curva do dragão ou a curva de Hilbert .

Por exemplo, a primeira imagem - mas sem a cor - é gerada pelo seguinte programa:

TO N_ECK :ne :sz   ; Definiert eine neue Funktion N_ECK mit zwei Parametern
    REPEAT :ne [    ; Wiederholt den folgenden Codeblock :ne mal 
        RT 360 / :ne  ; Dreht das Turtle um einen Winkel von 360° / :ne nach rechts
        FD :sz     ; Bewegt das Turtle um :sz nach vorne und malt dabei eine Linie
    ]
END
TO MN_ECK :ne :sz  ; Definiert eine neue Funktion MN_ECK mit zwei Parametern
    REPEAT :ne [    ; Wiederholt den folgenden Codeblock :ne mal
        RT 360 / :ne  ; Dreht das Turtle um einen Winkel von 360° / :ne Grad
        N_ECK :ne :sz ; Führt N_ECK aus und malt so das oben definierte N_ECK
    ]
END
MN_ECK 36 20      ; Führt MN_ECK aus und malt so das oben definierte MN_ECK

Chamar N_ECKcom um parâmetro grande :necria a impressão de um círculo. MN_ECKFreqüentemente, vira a tartaruga um pouco e depois desenha um círculo, de modo que a impressão de um grande círculo é criada, que por sua vez contém pequenos círculos.

É melhor em alemão. (com DLogo ).

UM N_ECK :ne :sz  // Definiere eine neue Funktion N_ECK mit zwei Parametern
  WIEDERHOLE :ne [  // Wiederholt den folgenden Kodeblock :ne mal
     RE 360 / :ne // Dreht das Turtle um einen Winkel von 360° / :ne nach rechts
      VW :sz   // Bewegt das Turtle um :sz nach vorne und malt dabei eine Linie
                       ]
ENDE
UM MN_ECK : ne  :sz // Definiere eine neue Funktion MN_ECK mit zwei Parametern
   WIEDERHOLE :ne [   // Wiederholt den folgenden Kodeblock :ne mal
          RE 360 / :ne // Dreht das Turtle um einen Winkel von 360° / :ne Grad
                 N_ECK :ne :sz // Führe N_ECK aus und malt so das oben definierte N_ECK
                        ]
ENDE
LÖSCHBILD BESCHLEUNIGE MN_ECK 36 20 // Führt MN_ECK aus und malt so das oben definierte MN_ECK

Veja também

Evidência individual

  1. Revista Byte Volume 07 Número 08 - Logo. Em: archive.org. Recuperado em 17 de janeiro de 2016 .
  2. ^ Gary Stager: Entrevista sobre a história do logotipo. 23 de abril de 2011, acessado em 23 de maio de 2020 .
  3. Em diferentes versões do Logo, esses comandos têm nomes parcialmente inconsistentes. Esta tabela se refere ao MSWLogo ( ( página não disponível , pesquise nos arquivos da web: derrel.net ), acessado em 9 de fevereiro de 2011)@ 1@ 2Modelo: Toter Link / derrel.net

Links da web

Commons : Logo  - coleção de imagens, vídeos e arquivos de áudio
Wikibooks: Logo  - materiais de aprendizagem e ensino
  • Intérprete do logotipo UCB por Brian Harvey, o pai do logotipo UCB
  • Uma variante do logotipo UCB que foi expandido para incluir funções multimídia
  • aUCBLogo uma implementação de software livre por UCB Logo de Augsburg.
  • DLogo uma implementação de software livre desde a tradução para o alemão da versão francesa do Logoplus. A maioria dos primitivos está lá em alemão. Muitos primitivos também se especializam em matemática e robótica. Capacidade de traduzir um algoritmo de LOGO para alemão, francês ou inglês.
  • Logotipo da MSW alemão : A versão atual (6.5) é adequada, entre outras coisas. também para controles (luzes de funcionamento, motores de passo) através da porta paralela da impressora para Win9x / 2K / ME / XP. Não será mais desenvolvido.
  • FMSLogo : FMSLogo é um sucessor do MSWLogo, que é atualizado regularmente. Ele tem uma página de projeto no Sourceforge.net.
  • O KTurtle não é um verdadeiro interpretador de logo - existem apenas gráficos de tartaruga . O KTurtle faz parte do projeto de educação e entretenimento do KDE.
  • Lhogho é um compilador de logo.
  • NetLogo é uma linguagem de programação multiagente com um ambiente de modelagem integrado.
  • XLogo é um interpretador de logotipo escrito em Java.
  • XLogo4Schools é um desenvolvimento adicional do XLogo.
  • XLogoOnline é um ambiente de programação moderno baseado em navegador para escolas primárias, que usa um subconjunto do vocabulário do dialeto XLogo. Versões offline para Windows, macOS e Linux também estão disponíveis para este ambiente de programação .
  • WIN-LOGO 3.0 é um desenvolvimento adicional do WIN-LOGO 2.0 pelo autor alemão Gerhard Otte. WIN-LOGO 3.0 também está disponível na versão de 64 bits em alemão e suporta interfaces da Fischer-Technik e Knobloch para o controle de robôs, cada um em uma interface paralela e porta USB. No canto / canto de aprendizagem você encontrará vídeos que explicam a programação e controle de robôs com WIN-LOGO.