People LOGO: Uma Introdução (*)¹
Eduardo O C Chaves
I. Introdução
People LOGO é uma implementação brasileira, e em português, da linguagem de programação LOGO, que é voltada, especialmente, para o uso do computador na Educação. Sendo uma linguagem de programação concebida e desenvolvida com vistas a aplicações educacionais, LOGO naturalmente incorpora, como se verá, uma filosofia da educação.
Desenvolvida nos anos sessenta, sob a inspiração e coordenação de Seymour Papert, do Massachusetts Institute of Technology (MIT), de Cambridge, MA, Estados Unidos, a linguagem LOGO teve sua utilização limitada, durante os anos sessenta e boa parte dos anos setenta, a ambientes de pesquisa em instituições universitárias [1]. Naquela época não havia ainda microcomputadores e as únicas implementações de LOGO existentes eram destinadas a equipamentos de maior porte. Isso significava que, para uma criança usar LOGO, ela tinha que sair de sua casa ou de sua escola e ir até o computador de uma das poucas universidades interessadas em pesquisar o impacto do computador sobre o processo de aprendizagem da criança.
Com o surgimento dos microcomputadores, ou computadores pessoais, a partir do final de 1977, nos Estados Unidos, a situação se alterou drasticamente. Em rápida sucessão, começaram a aparecer várias implementações de LOGO para microcomputadores. O primeiro microcomputador a receber uma implementação de LOGO foi o Apple II+, da Apple Computers, que, quase simultaneamente, ganhou três implementações diferentes durante o ano de 1981. A primeira implementação foi o Apple Logo, desenvolvido pela Logo Computer Systems, Inc. (LCSI), originalmente de Montreal, Québec, Canadá. A segunda foi o Terrapin Logo, desenvolvido pela Terrapin, Inc., de Cambridge, MA, Estados Unidos. A terceira implementação (a menos popular delas) foi o Krell Logo, desenvolvido pela Krell Software Company, de Stony Brook, NY, Estados Unidos. As duas últimas implementações são virtualmente idênticas e são baseadas, bem de perto, no LOGO desenvolvido no MIT.
Quase ao mesmo tempo surgiu uma implementação de LOGO para os microcomputadores TI 99/4 e TI 99/4A, da Texas Instruments, também bastante dependente, em termos de vocabulário, sintaxe e outras características, do LOGO desenvolvido no MIT, embora tenha inovado em alguns aspectos gráficos ("sprites", "tiles", etc.). A seguir, em 1982, apareceu uma implementação de LOGO para o microcomputador TRS Color, da Radio Shack (Tandy Corp.), que não seguiu muito de perto as diretrizes firmadas pelo LOGO do MIT. Já em 1983 apareceu uma implementação de LOGO para o microcomputador Commodore 64, da Commodore Business Machines, Inc., que, embora comercializada pela própria Commodore, foi desenvolvida pela Terrapin. Um dos desenvolvimentos mais interessantes e inovadores foi a implementação produzida para os microcomputadores Atari. Eventualmente surgiram implementações de LOGO para virtualmente todas as famílias ou linhas de microcomputadores que alcançaram alguma popularidade.
No Brasil, foi desenvolvida, pela ITAUTEC (Itaú Tecnologia S/A), em 1984-1985, uma implementação de LOGO para o microcomputador I-7000. Essa implementação, adaptada para o português, mediante convênio, pelo Núcleo de Informática Aplicada à Educação (NIED) da UNICAMP, na época coordenado por Eduardo O. C. Chaves, foi uma das primeiras implementações de LOGO para microcomputadores com o sistema operacional CP/M e uma das primeiras implementações de LOGO em português [2].
Todos esses microcomputadores já sumiram de cena. Permanecem, porém, e dominam o mercado, os microcomputadores da linha IBM PC. Logo depois que esses microcomputadores apareceram (1981) e se tornaram populares, surgiram várias implementações de LOGO para eles, desenvolvidas por Logo Computer Systems, Inc. (LCSI), a empresa canadense já mencionada, Waterloo MicroSystems, Inc., de Waterloo, Ontario, Canada, Digital Research, de Pacific Grove, CA, Estados Unidos, e por Harvard Associates, de Cambridge, MA, Estados Unidos. A implementação desta última empresa, que recebeu o nome de PC LOGO, encontra-se em sua versão 4.0, para o ambiente DOS, e foi recentemente distribuída para o ambiente Windows. PC LOGO tornou-se, pelo que tudo indica, a versão mais popular de LOGO para os microcomputadores da linha IBM PC. Outras implementações existem, em várias línguas, que não vem ao caso recensear aqui.
Basta mencionar que, embora tenham existido implementações de LOGO, em português, para microcomputadores das linhas CP/M, Apple e MSX, estava faltando, no mercado, uma versão, em português, para microcomputadores da linha IBM PC, que dominam, de forma absoluta, o mercado. Foi esta lacuna que a People Computação veio preencher com People LOGO, que é a primeira implementação de LOGO, por brasileiros e em português, para microcomputadores da linha IBM PC.
People LOGO começou a ser usado, em sua versão 1.0, dentro da rede People Computação e em escolas conveniadas, a partir de Julho de 1991. Sua versão 2.0 foi lançada ao público, oficialmente, durante a Fenasoft, em São Paulo, em Julho de 1992. Em 1993 People LOGO chegou à versão 2.2 , em 1995 alcançou a versão 3.0, e em 1996 foi lançada a versão 3.1, que inclui os comandos que permitem o trabalho com a robótica.
LOGO, como já se disse, é uma linguagem de programação voltada para a educação, e, portanto, especialmente adequada para o trabalho com crianças. Embora, quando de sua criação, LOGO não contivesse características eminentemente gráficas, sentiu-se, à medida que a linguagem evoluiu, a necessidade de dotá-la de recursos gráficos para torná-la mais acessível e mais interessante para crianças. Ironicamente, esses recursos gráficos acabaram por se tornar a parte mais conhecida da linguagem. Nesta rápida apresentação, procurar-se-á dar atenção a ambos os aspectos de LOGO: aos aspectos gráficos e aos aspectos relacionados a manipulação de palavras e processamento de listas.
Assim que a linguagem LOGO é carregada na memória do computador, a partir de um disquete removível ou de um disco fixo, a maior parte das implementações já oferece, imediatamente, ao usuário a possibilidade de trabalhar com os recursos gráficos de LOGO. O cursor gráfico de LOGO é, em muitas implementações, triangular, e foi apelidado de Tartaruga, desde que foi criado. Por causa desse apelido, People LOGO 3.1 tem o cursor gráfico na forma exata de uma tartaruga. [3]
Quando o usuário de People LOGO trabalha com recursos gráficos, a tela do computador geralmente é dividida em duas partes, ficando os (cerca de) quatro quintos superiores destinados a desenhos e o (cerca de) um quinto inferior destinado a texto. É nesta parte inferior que o usuário digita as instruções que lhe permitem criar desenhos na tela.
A maneira pela qual o usuário cria desenhos na tela é dando instruções à Tartaruga para que ela ande na tela (para frente, para trás), para que vire (para a direita, para a esquerda), para que, ao andar, deixe, não deixe, ou apague traços, para que mude a cor de seu traço, para que pinte uma determinada área, etc. Outras instruções permitem que o usuário coloque um ou mais pontos na tela, de determinada cor, e em lugares específicos, sem, contudo, alterar a posição e a direção da Tartaruga, ou que desenhe linhas entre dois pontos determinados, ou que escreva na tela, ou, ainda, que apague a tela inteira, etc. Tudo isso pode ser feito com o vocabulário original da linguagem LOGO.
O vocabulário original de LOGO (constituído pelos chamados termos primitivos da linguagem) pode, porém, ser aumentado pelo próprio usuário, que, usando instruções que contêm os termos originais da linguagem, pode definir procedimentos através dos quais são desenhadas na tela figuras geométricas, mesmo altamente complexas, como fractais, "ensinando", assim, a Tartaruga a fazer coisas mais sofisticadas do que as que ela inicialmente consegue fazer. Os nomes desses procedimentos são incorporados ao vocabulário, agora expandido, da linguagem. Na realidade, um procedimento definido pelo usuário pode fazer referência não só aos termos primitivos de LOGO, mas também a outros procedimentos definidos pelo usuário — e até mesmo a si próprio (produzindo, neste caso, o que se chama de "recursão").
Mas qual a utilidade, em termos da aprendizagem da criança, de fazer a Tartaruga andar pela tela? Fazendo-a andar pela tela, a criança acabará produzindo, através do computador, desde desenhos relativamente simples até sofisticados gráficos e virtuais obras de arte. Mas o objetivo dos criadores de LOGO não era simplesmente desenvolver o lado artístico da educação da criança: era, primariamente, ajudar o seu desenvolvimento cognitivo. Por isso, LOGO não contém termos primitivos que desenham, automaticamente, quadrados, triângulos, círculos, e outras figuras geométricas na tela (como outros softwares gráficos possuem). Se a criança desejar realizar um desenho que utilize figuras geométricas, ela terá que descobrir como fazer para "ensinar" a Tartaruga a desenhar essas figuras — e para ensinar, a criança tem que aprender. (LOGO baseia-se no princípio de que a melhor maneira de aprender um determinado conteúdo é ter que ensiná-lo!). Nesse processo de ensino/aprendizagem, a criança acabará descobrindo princípios importantes sobre distâncias, ângulos, retas, curvas, parábolas, simetria, paralelismo, proporção, perspectiva, etc. e acabará por dominar conceitos essenciais da geometria — brincando com o que se convencionou chamar de "Geometria da Tartaruga".
Aqui se pode descortinar parte da filosofia da educação que está por trás de LOGO: a idéia de que a criança aprende fazendo, de que aprender pode ser divertido, e de que a aprendizagem feita através desse processo motivante de descoberta é muito mais significativa e duradoura do que aquela que decorre de um processo formal de ensino.
Embora altamente divertida e muito interessante, do ponto de vista pedagógico, a Geometria da Tartaruga está longe de esgotar os recursos de LOGO. Talvez mais importante do que suas características gráficas, é sua capacidade de manipular palavras e processar listas que torna LOGO atraente para adolescentes e adultos, de todas as áreas, mas principalmente para aqueles interessados em inteligência artificial, em programação lógica, em manipulação da linguagem, e em problemas de natureza afim. Nesses aspectos, LOGO tem características semelhantes às de algumas outras sofisticadas linguagens de programação, como LISP e PROLOG.
LOGO possui termos primitivos que permitem construir instruções que analisam uma palavra, ou uma lista de palavras, e extraem dela o primeiro ou o último elemento, ou, então, tudo menos o primeiro ou o último elemento. Combinando expressões, é possível extrair de uma palavra, ou de uma lista de palavras, qualquer elemento. Outros termos primitivos permitem identificar se uma dada palavra, ou lista, contém um determinado elemento. Através desses termos, é possível verificar, por exemplo, se uma linha de texto digitada pelo usuário contém determinadas palavras, e determinar a seqüência do programa em função de uma resposta afirmativa ou negativa.
Foi usando características como essas que Joseph Weizenbaum escreveu um programa que se tornou famoso, chamado Elisa. Esse programa permite que o usuário use o computador como se este fosse um psicoterapeuta de tendências não-diretivas... O programa pede ao usuário que diga (digite) qual o seu problema. O que o usuário digita é armazenado em uma lista e o programa analisa a resposta para verificar se ela contém determinadas palavras. Se a resposta do usuário contém a palavra "mãe", por exemplo, o programa pode pedir ao usuário: "Fale-me mais acerca de sua mãe". Se contém a palavra "serviço", pode pedir: "Mas que tipo de problema você está tendo com o seu serviço?" — e assim por diante. À medida que o usuário vai fornecendo informações, o "analista" vai sendo capaz de fazer perguntas cada vez mais específicas — pois sempre se lembra das afirmações feitas anteriormente. Muitos usuários ficaram tão impressionados com o programa que não quiseram utilizá-lo na frente de outras pessoas — tão íntimo e revelador se tornava o diálogo! Muitos psicólogos e psicoterapeutas chegaram mesmo a prever uma nova moda, que denominaram de terapia conduzida pelo computador... Embora Elisa não tenha sido originalmente escrito em LOGO, todas as características necessárias para implementar o programa em LOGO existem na linguagem — tanto que ele foi convertido para LOGO assim que a linguagem se tornou disponível [4] .
Para concluir essa apresentação de LOGO, é oportuno responder a uma crítica às vezes feita a LOGO, quando se alega que aprender a programar nessa linguagem é menos importante do que aprender "coisas que realmente se usam na vida prática" — como, por exemplo, processadores de texto, planilhas eletrônicas, bancos de dados, etc.
A resposta a essa crítica é simples. Não se ensina uma criança a programar em LOGO para que se torne programador de computadores, mas, sim, porque o aprendizado de programação pode trazer importantes benefícios para seu desenvolvimento cognitivo e para sua educação. A criança não aprende a escrever porque vai se tornar escritor, nem a contar porque vai se tornar contador, nem estuda história ou ciência porque vai se tornar historiador ou cientista. A criança aprende a escrever e a contar, estuda história e ciência, porque tudo isso é importante para o seu desenvolvimento, enquanto indivíduo, e, eventualmente, para a sua atuação na sociedade, como profissional e cidadão.
Vejamos alguns dos benefícios que aprender a programar em LOGO pode trazer para o desenvolvimento da criança.
Em primeiro lugar, e em especial, o aprendizado de programação em LOGO ajuda a criança a desenvolver e a dominar importantes estratégias para a solução de problemas, como análise do problema, desmembramento de um problema grande e/ou complexo em problemas menores e/ou mais simples, criação de estratégias alternativas para resolver os problemas, avaliação da qualidade e viabilidade dessas estratégias, implementação de uma delas, testagem da implementação, eventual reformulação da estratégia adotada ou da implementação feita, etc.
O aprendizado de programação em LOGO permite ainda, em segundo lugar, que a criança aprenda a integrar atividades criativas, como a criação de estratégias de solução de problemas, com atividades lógicas, como a testagem da implementação da estratégia escolhida. Além disso, o aprendizado de programação em LOGO, por envolver freqüentemente os recursos gráficos da linguagem, permite a integração de atividades de cunho mais artístico com atividades de cunho mais matemático, como, por exemplo, as que envolvem a manipulação da posição e da direção da Tartaruga. Assim sendo, a programação em LOGO combina atividades que estimulam tanto o hemisfério direito como o hemisfério esquerdo do cérebro.
Em terceiro lugar, o aprendizado de programação em LOGO leva ainda a criança a dominar outros conteúdos além do vocabulário e da sintaxe da linguagem. Algumas crianças aprendem conceitos matemáticos importantes. Outras crianças aprendem conceitos sofisticados de física e princípios de autômata e robótica. Outras aprendem, ao tentar definir a duração e a intensidade de notas musicais, como a matemática pode ser importante na composição musical. E assim por diante.
É importante reconhecer que o aprendizado de todos esses elementos é algo extremamente importante, inclusive para fazer "coisas que se usam na vida prática". Pergunte-se a um engenheiro civil, a um arquiteto, a um pedreiro, ou a um carpinteiro, se não é importante ter estratégias para solucionar problemas, dominar conceitos como os de ângulo e proporcionalidade, saber integrar o estético e artístico com o científico e matemático.
É por tudo isso que se considera importante que a criança aprenda a programar em LOGO — não porque se deseja ou se espera que ela vá se tornar um profissional de programação. Na verdade, aquilo que é aprendido quando se aprende a programar em LOGO poderá ser extremamente útil até mesmo se a criança um dia se tornar um programador profissional.
People LOGO, sendo uma implementação de LOGO, é, portanto, uma linguagem de programação, isto é, uma linguagem artificial criada para facilitar a comunicação do ser humano com o computador. Sendo linguagem, ela tem, como toda linguagem, seu vocabulário próprio e suas regras de sintaxe (que indicam como esse vocabulário deve ser utilizado). Sendo linguagem de programação, People LOGO é uma ferramenta que permite ao usuário interagir com o computador, programando-o para realizar as coisas que ele deseja que o computador faça.
Quando o programa é carregado na memória do computador é com ele que o usuário passa a interagir, razão pela qual, no que segue, pressupõe-se que o usuário esteja se comunicando com People LOGO, e não diretamente com o computador.
People LOGO já vem com um vocabulário básico, composto de termos chamados primitivos. É através dele que o usuário se comunica inicialmente com People LOGO. Comparado com o vocabulário de linguagens naturais, esse vocabulário é bastante pequeno: consiste de um pouco mais de 400 termos.
Usando linguagens naturais, na vida diária, é virtualmente impossível se comunicar apenas através de termos isolados, não ordenados em estruturas mais complexas. Da mesma forma, para que haja efetiva comunicação do usuário com People LOGO, é preciso que o usuário reúna termos em uma sentença, segundo certas regras.
O que se denomina uma instrução, em People LOGO, é uma sentença, que o usuário digita, para dizer a People LOGO que faça alguma coisa. Uma instrução tem que conter suficiente informação para que fique exatamente especificado o que deve ser feito. Uma instrução pode usar mais de um termo primitivo.
Apesar de o vocabulário básico de People LOGO ser relativamente pequeno, ele pode ser expandido, através de procedimentos definidos pelo próprio usuário. Essa é uma das características mais interessantes de People LOGO. Um procedimento, portanto, é um termo novo que é acrescentado, pelo usuário, ao vocabulário básico de People LOGO, e que especifica, através de um conjunto de instruções, como People LOGO deve realizar uma determinada tarefa. Os procedimentos de People LOGO têm um nome (escolhido pelo usuário) e um conteúdo (as instruções que o compõem) [5].
Uma vez definido um procedimento, People LOGO o trata, em regra, como se fosse um termo primitivo. As instruções que compõem um procedimento podem conter, além de termos primitivos, nomes de outros procedimentos, ou até mesmo o nome do próprio procedimento em questão. Isso pode parecer complicado, ou mesmo circular, mas não é. Que um procedimento possa conter uma referência a si próprio é outra característica interessante de People LOGO, chamada de recursão.
Apesar de procedimentos serem tratados por People LOGO como se fossem termos primitivos, é necessário, para que um procedimento seja reconhecido como parte do vocabulário de People LOGO, que, cada vez que o usuário carrega People LOGO (isto é, em cada sessão de trabalho), ele defina esse procedimento na área de trabalho, ou então o carregue na memória a partir de um disco ou disquete. Os termos primitivos, em contraste, estão sempre disponíveis, assim que People LOGO é carregado na memória do computador.
Procedimentos podem ser agrupados e formar um programa. Um programa, portanto, é um conjunto de procedimentos que faz alguma coisa, geralmente mais complexa, desejada pelo usuário. [6]
Resumindo, um programa é um conjunto de procedimentos, e um procedimento, por sua vez, é um conjunto de instruções. Apesar de serem parte de procedimentos, instruções podem conter não só termos primitivos, mas também nomes de procedimentos.
Os valores constantes que People LOGO manipula ou processa são chamados de objetos e são de dois tipos: palavras e listas [7]. Embora, como em seguida se mostrará, números sejam um tipo especial de palavra, no sentido técnico do termo "palavra" aqui utilizado, às vezes se esclarece que os objetos de People LOGO incluem palavras, números e listas, em função do fato de que o termo "palavra", em seu sentido convencional, geralmente é entendido como não incluindo números.
É preciso observar que, muitas vezes, aplica-se o termo "objeto", por extensão, também a variáveis (que armazenam palavras e listas), de modo que o termo acaba cobrindo não só as constantes, propriamente ditas, mas também as variáveis em que essas constantes são eventualmente armazenadas.
Uma palavra, em People LOGO, é um objeto composto por uma seqüência de caracteres — alfabéticos, numéricos, ou alfanuméricos — que não contém nenhum espaço. Para indicar a People LOGO que uma seqüência de caracteres é uma palavra, e não um termo primitivo ou um nome de procedimento (que devem ser executados), geralmente colocam-se aspas antes da palavra (só antes: People LOGO considera a palavra terminada assim que encontra um espaço).
Números são palavras para People LOGO, se bem que palavras com algumas características especiais: números dispensam as aspas (embora continuem a ser números mesmo se aspas forem usadas) e funções aritméticas só podem ser realizadas sobre palavras que são números ou que representam números (variáveis; vide adiante). Por isso, palavras não numéricas não podem servir de entrada para funções aritméticas. Números podem ser inteiros (sem nenhuma casa decimal, isto é, sem nenhum dígito após a vírgula [em português] ou o ponto [em Inglês]) ou reais (com pelo menos uma casa decimal, isto é, com pelo menos um dígito após a vírgula [em português] ou o ponto [em Inglês]). Na descrição de primitivos de People LOGO que requerem palavras numéricas como complemento (como "entrada"; vide adiante), indica-se, na especificação da sintaxe, apenas "número", para deixar claro que é esse tipo de palavra que é esperado.
Além disso, palavras que são usadas para designar nomes de procedimentos, nomes de variáveis, ou nomes de arquivos (no disco ou disquete) são geralmente chamadas de nomes, para distingui-las de outras palavras. Isso é feito porque há comandos, em People LOGO, que exigem, como entrada, palavras desse tipo, e, portanto, fica mais fácil se referir a elas com uma designação diferente (como acontece em relação a números). Assim, na descrição de primitivos de People LOGO que requerem nomes de procedimentos, de variáveis, ou de arquivos como complemento (como "entrada"; vide adiante), indica-se, na especificação da sintaxe, apenas "nome", para deixar claro que é esse tipo de palavra que é esperado.
Embora pareça meio exquisito, também é possível ter, em People LOGO, uma palavra vazia, isto é, uma palavra sem nenhum caractere. Uma palavra vazia é representada apenas por aspas, sem nada depois. Assim: ".
Há mais uma coisa importante a registrar em relação a palavras. Embora se possa dizer que uma palavra seja um conjunto de caracteres, "caracteres" não são, para People LOGO, objetos (isto é, tipos de dados) distintos de palavras e listas. Quando uma palavra é desmembrada nos caracteres que a compõem, cada um desses caracteres é visto como uma nova palavra por People LOGO. Não se deve, portanto, confundir uma palavra com o que se chama, em outras linguagens de programação, de "cadeia de caracteres" (ou "string"), ou seja, qualquer coisa incluída entre aspas.
Uma lista é um conjunto identificado de palavras. Na verdade, uma lista, em People LOGO, é um objeto composto de outros objetos. Os elementos de uma lista podem ser palavras, números, outras listas, termos primitivos de People LOGO ou mesmo nomes, no sentido técnico visto (isto é, nomes de procedimentos, de variáveis, ou de arquivos).
Para indicar a People LOGO que um determinado conjunto de palavras é uma lista, usam-se colchetes. Como, neste caso, People LOGO não tem como descobrir por si só onde termina a lista, é necessário que colchetes sejam colocados tanto no começo como no fim da lista.
Como se observou, uma lista pode conter não só palavras individuais, mas também outras listas. Além disso People LOGO admite listas de uma palavra só e listas vazias. Listas de uma só palavra são indicadas por apenas uma palavra entre colchetes (sem aspas). Listas vazias são indicadas apenas pelos dois colchetes [], sem nada dentro.
Há três coisas importantes de registrar sobre listas e sua relação com palavras:
Primeiro, People LOGO interpreta uma palavra e uma lista de uma só palavra como objetos diferentes, mesmo que a palavra dentro da lista seja idêntica à palavra fora da lista.
Segundo, para facilitar a utilização da linguagem por parte de crianças pequenas, People LOGO admite, como uma excepcionalidade, que um conjunto de várias palavras seja manipulado como se fosse um lista especial (as palavras sendo exibidas na tela, por exemplo, inclusive com os espaços que as separam), se esse conjunto for delimitada por apóstrofos. Neste caso, People LOGO considera a lista como uma entidade à parte, a ser manipulada como um todo. (Como no caso de listas delimitadas por colchetes, neste caso é necessário usar um apóstrofo também no fim, para indicar que a lista está concluída).
Terceiro, não se deve confundir lista e sentença. Uma sentença é um tipo especial de lista, acerca do qual mais se dirá adiante (mais ou menos como um número é um tipo especial de palavra).
É preciso mencionar que People LOGO freqüentemente faz uso de variáveis. Há várias maneiras de explicar o que é uma variável. Uma delas usa a metáfora de que uma variável é como se fosse uma caixinha, com um rótulo, dentro da qual podemos armazenar um objeto (uma palavra, uma lista, ou mesmo um nome — de um procedimento, de um arquivo, ou mesmo de uma outra variável). O rótulo é o nome da variável, e o objeto armazenado nela é considerada seu conteúdo [8].
Na verdade, uma variável, em People LOGO, é uma palavra que designa uma região da memória do computador, dentro da área de trabalho de People LOGO, em que podem ser armazenados uma palavra, um número, uma lista e também um nome (de outra variável, de um procedimento, de um arquivo). Uma variável tem um nome (que é a palavra que a designa) e um conteúdo (aquilo que é armazenado na região da memória a que ela se refere, ou, como se diz comumente, aquilo que é armazenado nela: na variável). Quando se quer se referir à variável, enquanto região de memória da área de trabalho, usa-se o seu nome, que, como toda palavra, deve vir precedido de aspas. Quando se está interessado em seu conteúdo, deve-se usar uma função que indica que se está referindo ao conteúdo, e não ao nome, da variável (a função CONTEÚDO). Geralmente o nome dessa função é substituído pelo sinal de : (dois pontos) antes do nome da variável, que indica, simplificadamente, que está se fazendo referência ao conteúdo e não ao nome da variável.
Os termos primitivos de People LOGO e os procedimentos definidos pelo usuário podem ser divididos, quanto ao papel que desempenham dentro da instrução, em dois grupos: comandos e funções.
Alguns termos podem ser usados como primeiro elemento de uma instrução e são chamados de comandos: funcionam como se fossem formas verbais imperativas. Os outros termos, que precisam ser precedidos de um comando, são chamados de funções.
Um comando é, na verdade, uma ordem, que produz um efeito, como, por exemplo, escrever algo na tela, produzir um som, carregar um arquivo de um disco. A maioria dos comandos precisa receber algum conteúdo sobre o qual deva agir. O comando para escrever algo na tela, por exemplo, precisa receber informação sobre o que é que deve ser escrito. O comando para produzir um som necessita de informação sobre qual o som a ser feito e qual a sua duração. O comando para carregar um arquivo de um disco ou disquete requer informação sobre o nome do arquivo a ser carregado (inclusive com a especificação da unidade de disco e o diretório em que se encontra). O material que é passado ao comando e sobre o qual ele deve agir é chamado de sua entrada. Alguns comandos, porém, têm uma natureza tal que dispensam entradas. Os comandos que dizem a People LOGO para passar da tela de texto para a tela mixta, e vice-versa, não exigem entradas: eles, em si, já são suficientemente inteligíveis.
Embora um comando produza um efeito, ele, diferentemente de uma função, não produz um determinado resultado (que seria a sua saída), que possa ser aproveitado por outros comandos ou funções, servindo-lhes de entrada.
Uma função [9], por outro lado, realiza determinadas operações matemáticas ou lógicas com dados que lhe são passados (entrada), gerando um determinado resultado (saída), que, por sua vez, é passado, para outras funções ou, em última instância, para comandos, constituindo-se sua entrada. Pode-se, de certo modo, dizer que, quando uma função é executada, está se fazendo uma pergunta a People LOGO, e a resposta de People LOGO é o que se chama de saída da função. A função de somar dois números equivale a uma pergunta sobre qual é o resultado da sua adição. É responsabilidade do usuário dizer a People LOGO o que fazer com a saída de suas funções (se, por exemplo, essa saída vai ser exibida na tela, ou passada, como entrada, a outro termo primitivo ou procedimento, etc.) [10].
Já se pode ver, portanto, que, em People LOGO, comandos às vezes requerem entradas, às vezes não, mas funções sempre as requerem, e, portanto, precisam sempre recebê-las. Por outro lado, comandos nunca geram saída, mas funções, sim. Tanto comandos como funções podem ter uma, duas ou até mais entradas. As funções geram apenas uma saída. Procedimentos definidos pelo usuário são, em regra, comandos, e, como tal, podem ter entradas (uma, duas ou mais).
As entradas de comandos e funções podem vir na forma de constantes, variáveis, (outras) funções ou expressões mais complexas, como se verá a seguir.
h. A Composição de uma Instrução
Os termos primitivos de People LOGO, bem como os procedimentos definidos pelo usuário, são, em seu conjunto, os elementos que permitem, junto com os objetos que People LOGO manipula, compor as instruções.
Como já se observou, uma instrução de People LOGO precisa começar com um comando. Uma função sozinha (sem um comando) não pode formar uma instrução. Quando, por exemplo, se pergunta se dois números são iguais (função), é preciso acrescentar um comando para dizer a People LOGO o que fazer com a resposta (a saída da função).
Uma instrução completa, portanto, sempre consiste no nome de um comando, seguido de sua entrada (se ele a requer). Uma instrução que comece com uma função, e não com um comando, e que, em tudo o mais, está em ordem, é executada, mas People LOGO fica sem saber o que fazer com a saída produzida pela função, e, por isso, gera a seguinte mensagem de erro: "Não sei o que fazer com: . . .", onde os três pontinhos são substituídos pela saída da função.
Existem comandos de People LOGO que podem, sozinhos, constituir uma instrução. Outros comandos, porém, precisam vir acompanhados de entradas para poder constituir uma instrução.
A entrada de um comando vem na forma de uma expressão, da qual podem fazer parte constantes, variáveis, funções e outras expressões. Uma expressão, portanto, pode ser uma de três coisas, ou uma combinação delas:
Um, ou mais de um, valor constante (uma palavra ou uma lista), tantos valores quantas forem as entradas exigidas pelo comando;
Uma, ou mais de uma, variável, tantas variáveis quantas forem as entradas exigidas pelo comando;
O nome de uma, ou mais de uma, função, tantas funções quantas forem as entradas exigidas pelo comando, acompanhada, cada função, de uma, ou mais de uma, expressão, tantas expressões quantas forem as suas entradas.
i. A Execução de uma Instrução
Para que as instruções contidas em um procedimento sejam executadas é preciso, na gíria de People LOGO, invocar o procedimento (ou chamar o procedimento). Um procedimento é invocado através de uma instrução que consiste do seu nome (do procedimento) e das entradas que ele requer.
Para executar uma instrução, porém, não é necessário que ela faça parte de um procedimento. É possível executar instruções, que não são parte de procedimentos, de forma interativa, a partir do que, em People LOGO, se chama de linha de comandos. Neste caso, cada instrução é executada assim que é digitada, com todos os seus elementos, pois não é parte de um procedimento.
j. A Avaliação de uma Instrução
Para poder executar uma instrução, People LOGO precisa analisar as expressões que servem de entrada ao comando que a encabeça. Eventualmente, toda expressão pode e deve ser reduzida a um valor constante, através de um processo chamado de avaliação.
Exemplo de um Processo Simples de Avaliação
Embora o comando e as funções que serão usados no exemplo a seguir não tenham ainda sido introduzidos, todos eles são termos primitivos de People LOGO e podem ser rapidamente explicados.
ESCREVA: Comando, que requer apenas uma entrada (tanto palavra como lista), cujo efeito é exibir na tela de texto (ou na parte dedicada a texto no modo mixto) [11] a entrada que lhe é passada.
SOMA: Função, que requer duas entradas (números), e que produz, como saída, um outro número, resultante da adição das duas entradas.
Isso explicado, analisemos a seguinte instrução em People LOGO:
ESCREVA SOMA 7 8
1) People LOGO começa a avaliar esta instrução a partir da esquerda. Ele reconhece que ESCREVA é um comando, que requer uma entrada e que exibe na tela o conteúdo que lhe é passado, ou seja, sua entrada. ESCREVA requer apenas uma entrada. Qual é essa entrada? No caso, a entrada de ESCREVA não é uma constante. Se o fosse, o comando simplesmente exibiria na tela essa constante. A entrada de ESCREVA, aqui, é uma expressão (que será preciso, através da avaliação, reduzir a uma constante). A expressão em questão é "SOMA 7 8", composta, por sua vez, de uma função e de duas constantes, que servem de entradas a essa função. Não podendo ainda passar para ESCREVA a entrada exigida pelo comando, People LOGO prossegue no processo de avaliação, caminhando para a direita.
2) O termo seguinte que People LOGO reconhece é SOMA, que é uma função que requer duas entradas. People LOGO busca a primeira entrada, encontra-a já na forma de constante, o número 7, e passa o valor dessa constante para a função SOMA. A função, porém, requer duas entradas, e, por isso, People LOGO precisa prosseguir.
3) People LOGO continua e encontra a segunda entrada da função SOMA, também na forma de constante, o número 8, e a passa para a função.
4) A função SOMA, de posse de suas duas entradas, os números 7 e 8, adiciona um ao outro e produz, com isso, uma saída, o número 15. People LOGO não tem mais nada a buscar, adiante, e passa a saída da função SOMA para o comando ESCREVA, como entrada.
5) O comando ESCREVA, que requer apenas uma entrada, estando de posse dela, produz o efeito desejado, a saber, exibe na tela sua entrada, o número 15.
Operação concluída. Pode parecer que o processo foi descrito de forma mais detalhada do que seria necessário, mas o próximo exemplo vai mostrar que é fácil se perder nos "vais-e-vens" de People LOGO.
Exemplo de um Processo Complexo de Avaliação
Tendo visto um exemplo simples de avaliação, vejamos agora um mais complicado. Embora o comando e as funções que serão usados no exemplo a seguir não tenham ainda sido introduzidos (exceto no caso de ESCREVA, usado no exemplo anterior), todos eles são termos primitivos de People LOGO e podem ser rapidamente explicados:
ESCREVA: Comando, já visto, que requer apenas uma entrada (tanto palavra como lista), cujo efeito é exibir na tela de texto (ou na parte dedicada a texto no modo mixto) a entrada que lhe é passada.
PALAVRA: Função, que requer duas entradas (palavras), e que produz, como saída, uma só palavra composta das duas que lhe foram passadas como entrada.
ÚLTIMO: Função, que requer uma entrada (palavra ou lista), e que produz, como saída, o último elemento da entrada (a última letra, no caso de palavra, a última palavra, no caso de lista).
SEMÚLTIMO: Função, que requer uma entrada (palavra ou lista), e que produz, como saída, a entrada menos o último elemento (menos a última letra, no caso de palavra, menos a última palavra, no caso de lista).
PRIMEIRO: Função, que requer uma entrada (palavra ou lista), e que produz, como saída, o primeiro elemento da entrada (a primeira letra, no caso de palavra, a primeira palavra, no caso de lista).
SEMPRIMEIRO: Função, que requer uma entrada (palavra ou lista), e que produz, como saída, a entrada menos o primeiro elemento (menos a primeira letra, no caso de palavra, menos a primeira palavra, no caso de lista).
As palavras precedidas de aspas são, como já se observou, constantes.
Isto explicado, vejamos o que realiza a seguinte instrução de People LOGO (que é uma instrução só, embora ocupe mais de uma linha da tela):
ESCREVA PALAVRA PALAVRA ÚLTIMO SEMÚLTIMO "PEOPLE PRIMEIRO SEMPRIMEIRO "COMPUTAÇÃO PALAVRA ÚLTIMO SEMÚLTIMO SEMÚLTIMO "LINGUAGEM PRIMEIRO SEMPRIMEIRO SEMPRIMEIRO "PROGRAMAÇÃO
Vamos discutir o processo de avaliação passo a passo. (Quando, nesta discussão, um termo aparecer em maiúsculas, como PALAVRA, trata-se de um termo primitivo de People LOGO, se não for precedido de aspas, ou, em caso contrário, de uma constante utilizada na instrução. Quando aparecer em minúsculas, como "palavra", trata-se de um termo comum).
1) People LOGO começa a avaliar esta instrução a partir da esquerda. Ele reconhece que ESCREVA é um comando, que requer uma entrada e que exibe na tela o conteúdo que lhe é passado, ou seja, sua entrada. ESCREVA requer apenas uma entrada. Qual é essa entrada? A entrada de ESCREVA é uma expressão (que será preciso, através da avaliação, reduzir a uma constante). Bem que poderia ser uma constante, se a instrução completa fosse, por exemplo, apenas,
ESCREVA "LOGO
Nesse caso, ESCREVA produziria o efeito de imprimir a palavra LOGO na tela. Mas não é essa a entrada de ESCREVA no nosso exemplo: a entrada, ali, é uma expressão que ocupa todo o restante da instrução. O primeiro componente dessa expressão é a função PALAVRA.
2) Contudo, PALAVRA é uma função que, por sua vez, requer duas entradas. As entradas de PALAVRA, na sua primeira aparição na instrução, também são expressões, e, portanto, a função PALAVRA não pode ainda passar a sua saída ao comando ESCREVA (saída esta que lhe servirá, a ESCREVA, de entrada). Essa saída tem que ser aguardada, enquanto os entradas de PALAVRA são avaliadas.
3) A primeira entrada da função PALAVRA é novamente a função PALAVRA, agora em sua segunda aparição, que também requer duas entradas. People LOGO tem que passar para frente no processo de avaliação.
4) As entradas da função PALAVRA, em sua segunda aparição, também são expressões. A primeira entrada é a função ÚLTIMO, que requer apenas uma entrada. A função PALAVRA, em sua segunda aparição, fica aguardando sua primeira entrada.
5) A entrada da função ÚLTIMO é outra expressão, a função SEMÚLTIMO. People LOGO vai em frente em busca da entrada de ÚLTIMO, que fica aguardando sua entrada.
6) SEMÚLTIMO também é uma função que requer apenas uma entrada. A entrada de SEMÚLTIMO é, finalmente, uma constante, a palavra "PEOPLE (notem-se as aspas no início). SEMÚLTIMO elimina, de sua entrada, o último caractere e produz a saída "PEOPL (que é toda a entrada menos o último elemento). Aqui o processo de avanço se interrompe temporariamente, porque foi encontrada a entrada de SEMÚLTIMO e essa entrada não precisa ser avaliada, pois se trata de uma constante. A função SEMÚLTIMO tem agora que passar sua saída para um comando ou uma outra função que esteja aguardando uma entrada. Qual é o último termo que ficou aguardando uma entrada?
7) O último termo que ficou aguardando uma entrada foi a função ÚLTIMO (Passo 5). ÚLTIMO recebe, portanto, como entrada, a palavra "PEOPL. ÚLTIMO extrai dessa palavra seu último elemento, a saber, a palavra (de só uma letra) "L. Essa será a sua saída. Qual, novamente, é o termo seguinte que ficou a aguardar uma entrada?
8) O termo seguinte que ficou a aguardar uma entrada foi a função PALAVRA, na sua segunda aparição (Passo 4), que requer duas entradas, e que, agora, recebe a primeira delas: a palavra "L. A função PALAVRA, em sua segunda aparição, não pode, porém, passar sua saída para trás, porque ainda carece de sua segunda entrada. People LOGO tem, portanto, que ir novamente para frente, desviando-se do caminho já percorrido. Na busca da primeira entrada de PALAVRA, na sua segunda aparição, People LOGO chegou até a palavra "PEOPLE. Ele retoma a avaliação a partir daí.
9) O termo seguinte é PRIMEIRO, que é uma função que requer uma entrada. A entrada de PRIMEIRO é uma expressão, composta de outra função, SEMPRIMEIRO. People LOGO tem que ir para frente, enquanto PRIMEIRO aguarda sua entrada.
10) SEMPRIMEIRO é uma função que requer uma entrada, que, no caso, é uma constante, a palavra "COMPUTAÇÃO. A função SEMPRIMEIRO toma essa entrada e produz, como saída, uma outra palavra que é a entrada menos a primeira letra, a saber, "OMPUTAÇÃO. People LOGO começa a ir para trás novamente. Qual é o último termo que ficou a aguardar uma entrada?
11) O último termo que ficou a aguardar uma entrada foi a função PRIMEIRO (Passo 9). PRIMEIRO recebe, portanto, como entrada, a palavra "OMPUTAÇÃO. PRIMEIRO extrai dessa palavra seu primeiro elemento, a saber, a palavra (de só uma letra) "O. Essa será a sua saída. Qual, novamente, é o termo seguinte que ficou a aguardar uma entrada?
12) O termo seguinte que ficou a aguardar uma entrada foi a função PALAVRA, na sua segunda aparição, que, já tendo recebido a primeira entrada (a palavra "L), esperava a segunda (Passo 8). A segunda entrada de PALAVRA é a palavra "O. A função PALAVRA, em sua segunda aparição, agora está em condições de unir essas duas palavras e formar uma só, a palavra "LO, que é sua saída. Qual, novamente, é o termo seguinte que ficou a aguardar uma entrada?
13) O termo seguinte que ficou a aguardar uma entrada foi a função PALAVRA, na sua primeira aparição, que, requerendo duas entradas, não havia recebido ainda nenhuma delas (Passo 2). PALAVRA, em sua primeira aparição, vai receber, agora, como primeira entrada, a saída de PALAVRA, em sua segunda aparição, a saber, a palavra "LO. Porém, a função PALAVRA, em sua primeira aparição, não pode ainda passar uma saída para o comando ESCREVA, porque ainda carece de sua segunda entrada. People LOGO tem, portanto, que ir novamente para frente, desviando-se do caminho já percorrido. Na busca da primeira entrada de PALAVRA, na sua primeira aparição, People LOGO chegou até a palavra "COMPUTAÇÃO. Ele retoma a avaliação a partir daí.
14) O termo seguinte é, novamente, PALAVRA, agora em sua terceira aparição. PALAVRA requer, como se sabe, duas entradas. A primeira delas é a função ÚLTIMO, e, portanto, PALAVRA, em sua terceira aparição, tem que aguardar enquanto People LOGO vai avaliar a expressão.
15) A função ÚLTIMO requer uma entrada. A entrada de ÚLTIMO é uma expressão, composta de outra função, SEMÚLTIMO, em sua segunda aparição (visto que já havia aparecido lá atrás). People LOGO tem que ir para frente, enquanto ÚLTIMO aguarda sua entrada.
16) SEMÚLTIMO é uma função que requer uma entrada, que, no caso, é novamente uma função, a mesma função SEMÚLTIMO, em sua terceira aparição. People LOGO tem que ir para frente, enquanto SEMÚLTIMO, em sua segunda aparição, aguarda sua entrada.
17) A função SEMÚLTIMO requer uma entrada, que, no caso da terceira aparição do termo, é uma constante, a palavra "LINGUAGEM. A função SEMÚLTIMO toma essa entrada e produz, como saída, uma outra palavra, que é a entrada menos a última letra, a saber, "LINGUAGE. People LOGO começa a ir para trás novamente. Qual é o último termo que ficou a aguardar uma entrada?
18) O último termo que ficou a aguardar uma entrada foi a função SEMÚLTIMO, em sua segunda aparição (Passo 16). SEMÚLTIMO recebe, portanto, como entrada, a palavra "LINGUAGE. SEMÚLTIMO elimina dessa palavra seu último elemento e fica com a palavra "LINGUAG. Essa será a sua saída. Qual, novamente, é o termo seguinte que ficou a aguardar uma entrada?
19) O termo seguinte é ÚLTIMO, que é uma função que requer uma entrada (Passo 15). A entrada de ÚLTIMO é, portanto, a palavra "LINGUAG, e ÚLTIMO extrai, dessa palavra, o último elemento, a palavra (de uma só letra) "G, que será sua saída. Qual, novamente, é o termo seguinte que ficou a aguardar uma entrada?
20) O termo seguinte que ficou a aguardar uma entrada é PALAVRA, em sua terceira aparição. PALAVRA requer, como se sabe, duas entradas, e não recebeu ainda nenhuma (Passo 14). A primeira delas vai ser recebida agora e é a palavra "G. Contudo, a função PALAVRA, em sua terceira aparição, não pode ainda passar uma saída para a função PALAVRA, em sua primeira aparição, que está ainda aguardando sua segunda entrada (vide Passo 13). People LOGO tem, portanto, que ir novamente para frente, desviando-se do caminho já percorrido. Na busca da primeira entrada de PALAVRA, na sua terceira aparição, People LOGO chegou até a palavra "LINGUAGEM. Ele retoma a avaliação a partir daí.
21) O termo seguinte é PRIMEIRO, que é uma função que requer uma entrada. A entrada de PRIMEIRO é uma expressão, composta de outra função, SEMPRIMEIRO, em sua segunda aparição (visto que já havia aparecido lá atrás). People LOGO tem que ir para frente, enquanto PRIMEIRO aguarda sua entrada.
22) SEMPRIMEIRO é uma função que requer uma entrada, que, no caso, é novamente uma função, a mesma função SEMPRIMEIRO, em sua terceira aparição. People LOGO tem que ir para frente, enquanto SEMPRIMEIRO, em sua segunda aparição, aguarda sua entrada.
23) SEMPRIMEIRO é uma função que requer uma entrada, que, no caso da terceira aparição do termo, é uma constante, a palavra "PROGRAMAÇÃO. A função SEMPRIMEIRO toma essa entrada e produz, como saída, uma outra palavra que é a entrada menos a primeira letra, a saber, "ROGRAMAÇÃO. People LOGO começa a ir para trás novamente. Qual é o último termo que ficou a aguardar uma entrada?
24) O último termo que ficou a aguardar uma entrada foi a função SEMPRIMEIRO, em sua segunda aparição (Passo 22). SEMPRIMEIRO recebe, portanto, como entrada, a palavra "ROGRAMAÇÃO. SEMPRIMEIRO elimina dessa palavra seu primeiro elemento e fica com a palavra "OGRAMAÇÃO. Essa será a sua saída. Qual, novamente, é o termo seguinte que ficou a aguardar uma entrada?
25) O termo seguinte é PRIMEIRO, que é uma função que requer uma entrada (Passo 21). A entrada de PRIMEIRO é, portanto, a palavra "OGRAMAÇÃO, e PRIMEIRO extrai, dessa palavra, o primeiro elemento, a palavra (de uma só letra) "O, que será sua saída. Qual, novamente, é o termo seguinte que ficou a aguardar uma entrada?
26) O termo seguinte que ficou a aguardar uma entrada é PALAVRA, em sua terceira aparição. PALAVRA requer, como se sabe, duas entradas, e só havia recebido uma, a palavra "G (Passo 20). Agora PALAVRA, em sua terceira aparicão, recebe sua segunda entrada, a palavra "O, e pode combinar as duas entradas em uma só palavra, a palavra "GO, que será a sua saída. Qual é o próximo termo a aguardar uma entrada?
27) O próximo termo a aguardar uma entrada é a função PALAVRA, em sua primeira aparição, que, tendo recebido sua primeira entrada (a palavra "LO) está a aguardar sua segunda entrada (vide Passo 12). Esse termo recebe, agora, sua segunda entrada, a palavra "GO, e pode combinar as duas entradas em uma só palavra, a palavra "LOGO, que será a sua saída. Finalmente, portanto, a função PALAVRA, em sua primeira aparição, que ficou aguardando suas duas entradas desde o Passo 2, tem condições de passar sua saída para o comando ESCREVA.
28) O comando ESCREVA, como se viu no Passo 1, requer apenas uma entrada, que está recebendo agora, na forma da saída de PALAVRA, em sua primeira aparição, a saber, a palavra "LOGO. ESCREVA, sendo um comando, não uma função, não produz nenhuma saída, mas, por seu turno, produz um efeito, que é exibir na tela a palavra "LOGO.
Concluída a avaliação e executado o comando, People LOGO descansa.
Toda essa seqüência de passos resultou, em termos de efeito, em algo idêntico ao que seria produzido pela instrução
ESCREVA "LOGO
Por outro lado, não se teria aprendido como People LOGO funciona, se este tivesse sido o exemplo utilizado.
(*) Este trabalho é a parte inicial do Manual de Referência do software People LOGO (1992, 1997)
NOTAS:
[1] A melhor exposição da linguagem e dos princípios filosóficos que subjazem a ela é o livro do próprio Papert, intitulado Mindstorms: Children, Computers and Powerful Ideas (Basic Books, Inc., Publishers, New York, 1980). Este livro foi traduzido para o português, sob o título LOGO: Computadores e Educação, por Beatriz Bitelman et alii (Editora Brasiliense, São Paulo, 1985). Em livro mais recente, Papert retoma a questão do computador na educação. Vide The Children’s Machine: Rethinking School in the Age of the Computer (Basic Books, Harper Collins Publishers, New York, 1993).
[2] Cf. Eduardo O. C. Chaves et alii, "The Brazilian Version of LOGO", in LOGO 85 Pre-Proceedings (Massachusetts Institute of Technology, 1985), pp.69-70
[3] Embora o cursor gráfico inicial de People LOGO 3.1 tenha a forma de uma tartaruga, sua forma pode ser alterada, como se verá. Além disso, People LOGO 3.1 permite, como também se mostrará adiante, que o usuário trabalhe com múltiplas Tartarugas simultaneamente, e elas não precisam ter todas a mesma forma. Na realidade, apesar de se falar em múltiplas Tartarugas, nenhuma delas precisa ter a forma de uma tartaruga. O termo "Tartaruga", escrito com maiúscula, é termo técnico, sendo o nome do cursor gráfico de People LOGO.
[4] Para uma descrição detalhada dos fatos mencionados aqui, ver Joseph Weizenbaum, Computer Power and Human Reason (W. H. Freeman & Co., San Francisco, CA, 1976). Weizenbaum também trabalha no MIT, no mesmo laboratório em que trabalham Papert e Marvin Minsky (este um dos pioneiros e uma das maiores autoridades na área de Inteligência Artificial).
[5] Aqui talvez seja o lugar de esclarecer uma pequena questão terminológica. Muitos autores chamam os termos primitivos de LOGO também de procedimentos, distinguindo, portanto, entre procedimentos primitivos e procedimentos definidos pelo usuário. Fazem isto porque os termos primitivos de LOGO, embora primitivos para o usuário, são definidos em termos de várias instruções que ficam invisíveis para o usuário. Curiosamente, é exatamente por esta razão que prefiro manter a distinção e chamar de procedimentos apenas aqueles conjuntos de instruções definidos pelo usuário. As instruções que compõem os termos primitivos de LOGO não estão escritas em LOGO, mas em uma outra linguagem (C, por exemplo), e, portanto, chamar esses termos de procedimentos confunde mais do que esclarece.
[6] Naturalmente, nade impede que um só procedimento já faça algo desejado pelo usuário e que, portanto, seja chamado de programa. O conjunto, no caso, contém apenas um elemento.
[7] Há autores que classificam os objetos de LOGO de forma diferente. Alguns falam em três tipos de objeto, incluindo números (PC Logo Tutorial [para PC Logo 3.1], Harvard Associates, Cambridge, MA, 1988, p.101), ou mesmo em cinco tipos (Idem, pp.118, 122, mas cp. p.120), acrescentando números, variáveis e procedimentos. Números e variáveis são palavras e procedimentos são listas. Não há porque considerá-los objetos diferentes. Sigo a classificação usada pelo LCSI LOGO e sacramentada por autores como Brian Harvey e outros. Cf. Apple Logo Reference Manual (Logo Computer Systems, Inc., Montreal, Québec, 1982, p.x) e Brian Harvey, Computer Science Logo Style, Vol. I (The MIT Press, Cambridge, MA, 1985), pp.10-32.
[8] Por causa disso, algumas versões de LOGO chamam variáveis de "nomes". Acho o termo variável muito mais adequado.
[9] O que está sendo chamando de "função", nesta versão do manual, foi chamado de "operação", em versões anteriores. O termo "função" é menos ambíguo do que o anteriormente utilizado.
[10] Não se deve confundir o que é chamado de saída ("output") em LOGO com o que comumente se denomina "output". No sentido normal do termo, mesmo dentro do linguajar da computação, um comando de LOGO manda um output para a tela, por exemplo. No linguajar específico de LOGO, porém, um comando não tem saída, só efeito.
[11] As expressões "tela de texto", "modo mixto", etc. serão explicadas adiante.
© Copyright by Eduardo Chaves
Last revised: May 02, 2004
¹ Este texto é uma reprodução do publicado em <http://www.chaves.com.br/TEXTSELF/EDTECH/peoplelogo.htm>