Logo | |
---|---|
Sprog klasse | instruktionsprogrammeringssprog , funktionelt programmeringssprog og programmeringssprog |
Dukkede op i | 1967 |
Forfatter | Seymour Papert , Cynthia Solomon , |
Udvikler | Papert, Seymour , Harel, Idita og Cynthia Solomon [d] [1] |
Blev påvirket | Lisp |
Mediefiler på Wikimedia Commons |
Logo ( Engelsk Logo ) er et programmeringssprog på højt niveau udviklet i 1967 af Wally Förzeg , Seymour Papert og Cynthia Solomon til uddannelsesformål for at lære førskole- og folkeskolebørn de grundlæggende programmeringsbegreber ( rekursion , udvidelsesmuligheder, osv..).
Det første videnskabelige bevis på succesen med at bruge Logo som et læringsværktøj blev demonstreret af Idit Harel , en studerende fra Papert, der brugte Logo til at lære børn programmering og brøker i 1988 [2] .
Logo giver et miljø, hvor børn kan udvikle deres ræsonnement og problemløsningsevner.
En typisk og forventet del af Logo-programmeringssproget og -miljøet er skildpaddegrafikværktøjer , som på den ene side gør det muligt at visualisere indlæring af programmering, og på den anden side er meget organisk kombineret med den udbredte brug af rekursion . .
Logofortolkere findes til forskellige platforme og operativsystemer : Windows , DOS , Linux , Mac OS , Unix osv. Der er også mange objektorienterede logo-dialekter, såsom Object Logo , udgivet i 1986 . I 1997 blev den russiske version udgivet - LogoMira .
Brian Harvey, forfatter til tre-binds Computer Science Logo Style, skabte Berkeley-logoet . Multi-agent versioner af logoet - StarLogo og NetLogo .
Typiske logoimplementeringer (f.eks. fra LCSI ) giver programmøren et bibliotek af indbyggede kommandoer, en tekstbaseret fortolkerkonsol og et "programark", hvorpå der kan placeres instruktioner til registrering af nye funktioner. Mindst én grafisk skærm er også forsynet med mindst én skildpadde.
Mange implementeringer understøtter multithreading - på niveau med udførelse af kommandoer af skildpadder og på niveau med evnen til at køre en kommando asynkront og senere kontrollere, om den er fuldført. Det er muligt at sende en programmatisk genereret liste af ord til tolken til udførelse.
Logo er mere avanceret end de proceduremæssige programmeringssprog BASIC og Fortran , der almindeligvis bruges til at undervise i programmering. Men logoimplementeringer har generelt ikke veldesignede filprogrammer, og dette forhindrer det i at blive bredt vedtaget som et programmeringssprog.
I det væsentlige er logosproget en tilpasning af Lisp-sproget (nogle kalder det endda "Lisp uden parentes").
I Logo er et program en liste over "ord".
Som regel begrænser logoimplementeringer en smule listen over tilladte tegn i et ord, så kommandoer kan også kaldes på russisk. Desuden har mange russisksprogede implementeringer af Logo russisksprogede kommandoer eller indbyggede russisksprogede synonymer for alle indbyggede kommandoer.
Ordene på listen er adskilt af mellemrum.
Ordet kan enten være en kommando eller en bogstavelig af en af tre typer - en streng, en numerisk eller en listeliteral. En kommando kan returnere en værdi, i hvilket tilfælde den betragtes som en funktion. Bogstaver returnerer deres værdi direkte. En streng-literal er formateret som et ord efter et dobbelt anførselstegn. Ord bestående af cifre fortolkes som numeriske bogstaver. For at danne en liste over ord i programteksten er de omgivet af firkantede parenteser.
Der er også kommandoer til at gemme og få en værdi ved navn, men mange implementeringer supplerer den med konceptet om en variabel - introducerer en kompakt kommandosyntaks til at få værdien af en variabel. Derfor, for at få værdien af en variabel, er det normalt nok at skrive dens navn med et kolon foran.
Der er en speciel syntaks til at overføre et ikke-fast antal parametre til nogle indbyggede kommandoer. For at gøre dette foreslås det at omslutte kommandoen og alle dens parametre i parentes, for eksempel: (СПИСОК :A :Б :В :Г 1 2 3 4)For brugerkommandoer er denne syntaks ikke anvendelig, fordi der ikke er nogen syntaks til at beskrive behandlingen af parametre, der sendes på denne måde.
Listen over kommandoer, der sendes til tolken, udføres efter tur. Det næste ord tolkes som en kommando fra systemets nuværende ordbog. Hvis det tager parametre, så udfører tolken det næste ord på listen for at få en værdi til at passere som den første parameter.
Hvis en kommando træder i stedet for en parameter, forventes kommandoen at returnere en værdi. Og hvis værdien, der returneres af den næste kommando, ikke er beregnet til at blive videregivet til en anden kommando, rapporterer systemet en fejl, hvis et sådant opkald stødes på i programteksten, eller viser værdien, hvis kommandoen blev kaldt i interaktiv tilstand.
Brugen af den sædvanlige infix- form for udtryk for matematik og logik på velkendte operatorer, såsom "(2 + 3) * 5" og "2 > 5", er understøttet. Men på grund af det faktum, at i henhold til sprogets grundlæggende regler kommer kommandoen først, og derefter dens parametre, til grundlæggende aritmetiske og logiske operationer i nogle dialekter (f.eks. LCSI LogoWorlds og LogoWriter), er der også kommandoer, vha. hvilke udtryk har formen "tilføj gange 2 3 5" og "mere? 2 5".
Der er en kommando til at udvide ordbogen med brugerdefinerede kommandoer, den accepterer et nyt kommandonavn, en liste over parametre og en liste over kommandoer.
Der er to hovedmekanismer til at kontrollere programudførelsen: loop-sætningen med et fast antal gentagelser og rekursion.
I den russiske version af logosproget:
TIL hilsner SKRIV [Hej verden!] SLUTTENFra juni 2010 har der været mindst 246 implementeringer af Logo [3], siden sproget blev oprettet.
Der er i øjeblikket ingen enkelt standard for logo-sproget, selvom visse konventioner om sprogets grundlæggende aspekter er bredt accepteret. Dialekterne i Logo har betydelige forskelle. Situationen kompliceres af tilstedeværelsen af en række skildpaddegrafikprogrammer, som fejlagtigt kaldes "Logo".
Den mest udbredte og dominerende implementering af sproget på det tidspunkt var Apple Logo -systemet , udviklet af LCSI til Apple II -computeren og distribueret i 1980'erne . I Bulgarien blev dette produkt lokaliseret til bulgarsk og russisk for Apple II-kompatible computere i Pravets 8 -serien , distribueret under navnet "Logo 2.0" og meget brugt i uddannelsesprocessen i Bulgarien og USSR . Efterfølgende blev en russisk lokalisering af LCSI-produktet til MS-DOS kaldet LogoWriter frigivet i Rusland .
En gratis implementering på tværs af platforme af UCBLogo [4] , også kendt som Berkeley Logo , er meget brugt i dag , men mangler en rudimentær grafisk brugergrænseflade .
MSWLogo [5] og dens nyere version FMSLogo [6] [7] er tilgængelige til Microsoft Windows og er meget brugt i skoler i Storbritannien og Australien . Også kommercielle implementeringer af MicroWorlds Logo [8] og Imagine Logo [9] bruges i vestlige skoler .
MSWLogo og FMSLogo understøtter flere skildpadder og 3D-grafik, samt avancerede I/O og andre udvidelser.
Til MacOS X er en gratis implementering af ACSLogo [10] tilgængelig , som har en ret avanceret grafisk grænseflade, lokalisering på flere sprog og giver dig mulighed for at tilføje dine egne lokaliseringer.
I Rusland bruger uddannelsesprocessen russiske lokaliseringer af LCSI MicroWorlds til Windows og Mac OS X kaldet "LogoMira" og "PervoLogo" [11] .
Lisp | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Egenskaber |
| ||||||||||||||
Implementeringer |
| ||||||||||||||
Hardware |
| ||||||||||||||
Fællesskab |
| ||||||||||||||
|
Programmeringssprog | |
---|---|
|