Saltar para o conteúdo

Linotte: diferenças entre revisões

Origem: Wikipédia, a enciclopédia livre.
Conteúdo apagado Conteúdo adicionado
Aeliazat (discussão | contribs)
Aeliazat (discussão | contribs)
Linha 13: Linha 13:


<div>
<div>
("autor: Adolfo Eliazàt")
ivre : [le nom du livre]
Livre : [le nom du livre]
Paragraphe : [le nombre du paragraphe]
Paragraphe : [le nombre du paragraphe]
{Les} rôles :
{Les} rôles :

Revisão das 15h02min de 2 de outubro de 2009

Linotte é uma linguagem de programação open source (licença GPL V3) criada em 2005 por Ronan Mounès. É uma linguagem interpretada pertencente ao paradigma imperativo e tem como peculiaridade sua sintaxe que possui comandos no idioma francês. A principal idéia de Ronan Mounès ao criar a linguagem Linotte foi desenvolver uma linguagem que fosse simples e fácil de aprender por pessoas que estão começando a programar que têm pouco ou nenhum conhecimento em programção e estudantes em geral mas que desejam ter um primeiro contato com programação. A idéia é que um programa Linotte fosse tão fácil de ler quanto um livro, por isso os programas em Linotte não são chamados de programas e sim de "livro" e cada função do programa é chamada de "parágrafo". Como o próprio mote sugere: "Se você é capaz de ler um livro, então é capaz de escrever um programa de computador".

Em linotte não existem sinais como parênteses, chaves, colchetes e outros tipos de sinais, salvo os que representam as quatro operações básicas (adição, subtração, multiplicão e divisão). As variáveis são persistentes (exceto na versão applet), quando se declara uma variável em um livro Linotte ela é alocada na memória e pode ser usada novamente em outro trecho do mesmo livro, na próxima execução do livro ou até em um livro diferente. Não é possível acontecer erro durante a execução, uma vez que um livro escrito em Linotte não pode ser executado caso exista algum erro de sintaxe.

Linotte é uma linguagem que leva o programador a desenvolver a base de programação: os algoritmos. Não é uma linguagem desenvolvida para aplicações comerciais reais mas sim para começar a aprender os conceitos básicos de programação.

Estrutura Básica

Estrutura Básica de um programa Linotte:

("autor: Adolfo Eliazàt") Livre : [le nom du livre]

Paragraphe : [le nombre du paragraphe]
 {Les} rôles : 
  {article} Acteur est un nombre
  {article} Acteur est un nombre vide
  {article} Acteur est un nombre valant [valeur]
  {article} Acteur est un texte
  {article} Acteur est un texte vide
  {article} Acteur est un texte valant [valeur]
 {Les} actions :
  Tu [verbe] {article} [acteur]
  Tu [verbe]

[xxx] : obrigatório; {xxx} : facultativo

Linotte e outras linguagens de programação

O intuito da linguagem de programação Linotte não é competir com o Basic ou outra linguagem, mas apenas fornecer uma introdução para estudantes à programação, para que depois possam evoluir para linguagens mais poderosas. Mesmo que as atualizações e versões não sejam muito constante, devido a limitações de tempo, o projeto está na versão 0.7.0 (data de atualização janeiro 27, 2009), e já possui um grande número de funções: de cálculo à exibição de string de caracteres até a possibilidade de tocar música!

O interpretador (L'Atelier Linotte)

Como mencionado acima, Linotte é uma linguagem interpretada. Até agora, existe apenas um interpretador disponível, mas ele permanece livre. Ele é chamado de "Atelier" pois é nele onde é desenvolvido todo o trabalho pelo programador. É desenvolvido em Java e é distribuído sob a GNU-GPL. O ateliêr linote vem no pacote do Linotte que está disponível no site oficial, assim como bibliotecas, um manual e alguns exemplos também estão no pacote que está em formato .zip.

Exemplo de um Hello World (Bonjour Tout Le Monde)

Livre : HelloWorld
  Paragraphe : hello
    Les actions :
       "Bonjour Tout Le Monde !"

Os únicos requisitos são os conhecimentos dos comandos que são fáceis de se aprender pois estão muito próximos de um roteiro de um filme. Além disso, Linotte se difere da maioria das linguagens no que diz respeito à declaração das variáveis, aqui no lugar de variáveis são declarados "papéis" porém o princípio é o mesmo.

Integrar Linotte com uma página web

É possível integrar uma applet em forma de botão para ler um livro (programa) linotte de uma página HTML. Para isso é necessário acrescentar o seguinte código à sua página:

<applet code="org.linotte.applet.PetiteTete2Linotte.class" width="110" height="110">
<param name="cache_archive" value="http://langagelinotte.free.fr/linotte/linotte_last/jinotte.zip">
 <!-- valor à ser modificado : -->
 <param name="url" value="http://mon.site.a.moi.fr/mon_livre.liv">
</applet>

JINOTTE

Jinotte é a interface que permite utilizar o Linotte através da linha de comando de um sistema operacional. Para executar um comando utilizando o Jinotte é necessário seguir a estrutura:

jinotte [opção]* [livro_linotte.liv]

As opções disponíveis são:

-v : Exibe a versão do interpretador Linotte
-b : Executa um livro Linotte
-h : Exibe as optções disponíveis
-t : Exibe o tempo de execução de cada livro
-x : Autorisa a utilisação de tela em modo console
-s : Exibe un ícone do systray no lugar da barra de tarefas

Exemplos:

jinotte -bt livre\bienvenue.liv jinotte -bt livre\bienvenue.liv livre\helloword.liv

Execução:

Windows

Abrir uma sessão DOS, ir até o diretório de instalação do Linotte e em seguida digitar o seguinte comando:

jinotte -bt livre\bienvenue.liv

Linux e MacOS

Abrir um shell, ir até o diretório de instalação do Linotte e em seguida digitar o seguinte comando:

java -cp jinotte.jar -b livre\bienvenue.liv

Le livre (O Livro)

Linotte funciona com um interpretador. Um interpretador é um programa que irá receber uma à uma as ordens à serem executadas e irá parar nas seguintes situações: se chegar ao fim da lista de ordens, se o você ordenar atráves de um comando ou se encontrar um erro. No caso de encontrar um erro ele irá mostrar a causa a fim de que você possa corrigir. Podemos comparar o interpretador Linotte com um roteirista cinematográfico. Afin de que possa criar um roteiro para um filme, ele cria um cenário, uma lista de atores, os papéis dos atores e as ações que deveram cumprir os atores. Se o filme é muito longo ele pode dividi-lo em várias cenas. O interpretador Linotte necessita das mesmas informações, no entanto elas são reagrupadas em um "Livre" que podemos associar à um cenário. As ações são detalhadas não mais em cenas mas em "Paragraphes".

Les Paragraphes (Os parágrafos)

Voltemos ao roteirista. Ele decidiu criar um roteiro para um filme em três cenas diferentes: uma na cozinha, uma no corredor e uma na rua. Dois atores. Em Linotte um "Paragraphe" tem a mesma função de uma cena. Pode-se ir de um parágrafo à outro, bem como voltar à um já percorrido. Segue um exemplo da utilização de "Paragraphes" em Linotte:

Livre : capitale de la France

Paragraphe : question
 Les rôles :
  question est un texte valant "Quelle est la capitale de la France ?"
  capitale est un texte vide
  réponse est un texte valant "Paris"
 Les actions :
  Tu affiches la question
  Tu demandes la capitale
  Si capitale est égale à la réponse alors tu vas vers la réponse bonne 
  Tu vas vers la réponse fausse
Paragraphe : réponse bonne
 Les actions :
  Tu affiches "Bravo, tu es trop fort !"
  Tu joues le "Do"
  Tu termines
Paragraphe : réponse fausse
 Les rôles :
  libelle est un texte valant "Faux ! tu peux recommencer !"
 Les actions :
  Tu affiches le libelle
  Tu vas vers la question

Este "Livre" exibe um mensagem perguntando ao usuário qual é a capital da França no "Paragraphe" Question. Em seguida verifica a resposta: caso for falsa o interpretador vai até o "Paragraphe" Réponse Fausse e caso a resposta seja verdadeira ele vai até o "Paragraphe" Réponse Bonne( este "Paragraphe" termina a execução do "Livre"). O "Paragraphe" Réponse Fausse exibe uma mensagem e depois volta para o parágrafo Question que já foi percorrido. É criado um laço que pode se tornar infinito se o usuário nào digitar a capital da França corretamente.

  • Todo "Paragraphe" deve terminar ou pelo verbo "aller" ou pelo "terminer" (devidamente conjugados).

Les Acteurs et les Rôles (Os atores e os papéis)

O computador possui uma memória onde pode-se gravar os dados que podem lidos, modificados ou suprimidos. Os atores são a interface que vão permitir manipular essa memória pois eles são os mensageiros que contém as informações necessárias. No início do "Paragraphe" define-se os atores que serão utilizados. O interpretador Linotte vai reservar um espaço na memória para registrar os atores. Para um ator ele vai armazenar as informações que estão associadas à ele bem como o nome desse ator pois esse será o identificador que permitirá recuperar as informações sobre esse ator. A declaração dos atores é realizada na seção “Rôles”. Existem três formas de criar um ator:

- Atribuindo um valor inicial: Le message est un texte de valeur “Bonjour”
- Atribuindo um tipo: Le message est um texte
- Atribuindo um valor inicial nulo(vazio): Le message est um texte vide

  • É obrigatório declarar os atores no início do “Paragraphe”.

Les Rôles: texte e nombre (Os papéis: texte e nombre)

Linotte é uma linguagem tipada. Cada ator tem um “Rôle” (papel), ou seja, cada ator tem um tipo e não é possível alterá-lo uma vez definido esse tipo. Os tipos mais simples em Linotte são: “texte” e “nombre”. Segue abaixo um exemplo usando os dois tipos:

Livre : mon troisième exemple

Paragraphe : afficher le message
 Les rôles :
  Question est un texte valant "Quel est ton âge ?"
  Message est un texte valant "Vous paraissez nettement mois que vos "
  Âge est un nombre vide
 Les actions :
  Tu affiches la question
  Tu demandes l'âge
  Tu ajoutes l'âge dans le message
  Tu affiches le message
  Tu termines
  • O interpretador Linotte não faz diferenciação de maiúsculas e minúsculas. Em contrapartida a acentuação é muito importante pois caso não seja respeitada o interpretador não irá reconhecer os comandos.
  • Esse exemplo mostra que o interpretador pode transformar um valor de um ator do tipo “nombre” para o tipo “texte” (Tu ajoutes l’ âge dans le message). O inverso não é possível.
  • É possível utilizarò sinal de + no lugar de “Tu ajoutes...dans Le...”: Tu affiches message + âge.
  • Em linote o tamanho das Strings é limitado apenas pela capacidade de memória do computador.
  • O tipo “nombre” em linotte é um número decimal. Deve-se utilizar o ponto e não virgula como separador decimal.

Impératif ou Présent? (Imperativo ou presente?)

É possível utilizar imperativo no lugar de presente durante a conjugação de um verbo. Assim, em vez de escrever: Tu affiches le document, pode-se escrever : Affiche le document.

Les articles (Os artigos)

Os artigos são uma curiosidade da linguagem linotte pois sua única utilidade é melhorar a visibilidade de um programa escrito em Linotte para que fique mais próximo de uma linguagem humana. Assim, é mais agradável ler: tu affiche le message do que tu affiche message. Segue a lista dos artigos mais comuns utilizados em Linotte: le, la, l', les, des, du, un, une, mon, ma, ton, ta, tes

Les actions (As ações)

Escrever uma ação em um “livre”

É nada mais do que dar uma ordem ao interpretador utilizando qualquer frase começando por “tu” seguida de um verbo no presente do indicativo. Exemplo:

Livre : Pythagore

Paragraphe : Pythagore
 Les rôles :
  AB est un nombre vide
  BC est un nombre vide
  AC est un nombre vide
  Réponse est un texte valant "Le carré de l'hypoténuse vaut : "
 Les actions :
  Tu demandes AB
  Tu demandes BC
  AB vaut carré AB 
  BC vaut carré BC
  Tu ajoutes AB dans AC
  Tu ajoutes BC dans AC
  Tu ajoutes AC dans la réponse
  Tu affiches la réponse
  Tu termines
  • Deve-se escrever os comando todos na mesma linha por questões de melhor visibilidade, porém caso não de para colocar tudo na mesma linha são utilizados reticências para quebra de linha:

Livre : Bienvenue

Paragraphe : Olé !
 Rôles :
  Prénom est un texte
 Actions :
  Efface le tableau
  Questionne le prénom sur ... 
  "Bonjour ! Quel est ton prénom ?"
  Affiche "Bravo " + prénom + ... 
  ", tu viens de lire ton premier livre Linotte !"
  Termine

Les casiers (As listas)

Casiers são papéis que permitem a criação de listas de atores: langage est un casier de texte valant "java", "c++", "logo", "linotte"

Pode-se construir igualmente uma lista de números: notes est un casier de nombre valant 15, 18, 12

Les Acteurs Particuliers (Os atores particulares)

Na linguagem linotte existem atores à disposição que possuem valores dinâmicos ou estáticos(que somente podem ser lidos). Segue a lista de atores particulares existentes em Linotte:

année : contém o ano corrente
mois : contém o número do mês corrente
jour : contém o número do dia corrente
heure : contém a hora corrente (em 24 horas)
minute : contém o(s) minuto(s) corrente(s)
seconde : contém o(s) segundo(s) corrente(s)
version : contém a versão do interpretador Linotte que está sendo utilizada
joker : ver o capitulo dos boucles
auteur : contém o nome do autor do interpretador Linotte
spécification : contém a versão das especificações do interpretador Linotte
polices : casier que contém a lista de polices disponíveis suportadas pelo sistema
sourisx : posição horizontal do mouse
sourisy : posição vertical do mouse
touche : marca das teclas
création : contém o ultimo ator criado com o verbo « créer »
ecranv : altura vertical da tela
ecranh : altura horizontal da tela
couleurs : contém a lista das cores reconhecidas pelo Linotte
livre : nome do livre que está sendo utilizado

Segue abaixo um exemplo que utiliza a hora e os segundos utilizado atores particulares:

Livre : l'horloge

Paragraphe : l'affichage
 Les rôles :
  horloge est un texte vide
 Les actions :
  Tu concatènes "Il est " , l'heure , " heures, " dans l'horloge
  Tu concatènes horloge , la minute , " minutes et " dans l'horloge
  Tu concatènes horloge , la seconde , " secondes" dans l'horloge
  Tu affiches l'horloge
  Tu attends 1 seconde
  Tu vas vers l'affichage

Les Grandes Rôles (Os grandes papéis)

Um grande rôle é um ator visível em todo um livre Linotte, ou seja, para utilizá-lo não é necessário declará-lo toda vez que iniciar um novo paragraphe. Os grandes roles são definidos no inicio de um livre:

Livre : mon livre Les grands rôles :

   ....

O fato de criar um ator somente uma vez para todo um livre permite otimizar e aumentar a execução de um livre linotte aumentando sua velocidade: o interpretador perde menos tempo criando (instanciando) outros atores na memória.

Les commentaires (Os comentários)

Os cometários são utilizados para fazer anotações em um livre linotte ou desativar trechos de código. Para fazer um comentário em linotte basta colocar (" no inicio de um comentário e ") no fim. Segue abaixo um exemplo:

Livre : Exemple 4 ("Voici un livre juste pour vous") ("ce livre a été écrit en décembre 2006")

Paragraphe : 
 Les actions : 
  ("Je vais afficher le texte bonjour à l'aide d'un acteur anonyme")
  Tu affiches "Bonjour"
  ("Je quitte le programme")
  Tu termines

Les conditions (As condições)

As condições em linotte são frases que começam com si e são seguidas de um teste e depois de uma ação. Segue a lista das condições existentes em linotte:

si { artigo } [ator] est vide alors [ação]
si { artigo } [ator] est non vide alors [ação]
si { artigo } [ator] est plus grand que { artigo } [ator] alors [ação]
si { artigo } [ator] est plus petit que { artigo } [ator] alors [ação]
si { artigo } [ator] est moins grand que { artigo } [ator] alors [ação]
si { artigo } [ator] est moins petit que { artigo } [ator] alors [ação]
si { artigo } [ator] est égal à {article} [acteur] alors [ação]
si { artigo } [ator] est différent de { artigo } [ator] alors [ação]
si { artigo } [ator] contient { artigo } [ator] alors [ação]
si { artigo } [espaço geográfico] est en collision avec { artigo } [espaço geográfico] alors [ação]


  • Pode-se utilizar indiferentemente: grand/grande, petit/petite, différent/différente.

Segue abaixo um exemplo utilizando condições:

Livre : teste année linotte

Paragraphe : question
 les rôles :
  question est un texte valant "En quelle année le langage Linotte a été inventé ? "
  année est un nombre vide
 les actions :
  tu affiches la question
  tu demandes l'année
  tu vas vers vérification
Paragraphe : vérification
 les rôles :
  année est un nombre
  réponse est un nombre valant 2005
 les actions :
 si année est égale a réponse alors tu vas vers réponse bonne
 si année est plus grande que réponse alors tu vas vers avant
 si année est moins grande que réponse alors tu vas vers après
Paragraphe : réponse bonne
 les rôles :
  libelle est un texte valant "Bravo, tu es trop fort ! "
 les actions :
  tu affiches le libelle
  tu termines
Paragraphe : avant
 les rôles :
  libelle est un texte valant "Non non... c'est avant ! "
 les actions :
  tu affiches le libelle
  tu vas vers la question
Paragraphe : après
 les rôles :
  libelle est un texte valant "Il est plus jeune ! "
 les actions :
  tu affiches le libelle
  tu vas vers la question
  • Pode-se utilizar a condição sinon no inicio de uma frase:

Si [condiçao] alors [açaoA] Sinon, [açaoB]

  • Ou alors:

Si [condiçao 1] alors [açaoA] Sinon, si [condiçao 2] alors [açaoB]

  • Pode-se utilizar ainda uma sequencia de sinons:

Si [condiçao 1] alors [açaoA] Sinon, si [condiçao 2] alors [açaoB] Sinon, si [condiçao 3] alors [açaoC] ... Sinon, [açaoZ]

Exemplo:

si année est égale a réponse alors tu vas vers réponse bonne
sinon, si année est plus grande que réponse alors tu vas vers avant
sinon, tu vas vers après

Links Externos