Logo (programmeringssprog) - Logo (programming language)

Logo
FarfalladiIvanaNiccolai.jpg
Kreativitet i legende aktiviteter baseret på brugen af ​​logoet
Paradigmer Multi-paradigme : funktionel , uddannelsesmæssig , proceduremæssig , reflekterende
Familie Lisp
Designet af Wally Feurzeig , Seymour Papert , Cynthia Solomon
Udvikler Bolt, Beranek og Newman
Første gang dukkede op 1967 ; 54 år siden ( 1967 )
Skrive disciplin dynamisk
Store implementeringer
UCBLogo , mange andre
Dialekter
StarLogo , NetLogo og AppleLogo
Påvirket af
Lisp
Påvirket
AgentSheets , NetLogo , Smalltalk , Etoys , Scratch , Microsoft Small Basic , KTurtle , REBOL , Boxer
Symmetri omkring et punkt kan opnås ved hjælp af kun få instruktioner, så brugerne kan tegne hypotrochoider som den, der er vist her.

Logo er et uddannelsesmæssigt programmeringssprog , designet i 1967 af Wally Feurzeig , Seymour Papert og Cynthia Solomon . Logo er ikke et akronym: navnet blev opfundet af Feurzeig, mens han var i Bolt, Beranek og Newman , og stammer fra de græske logoer , der betyder ord eller tanke .

Et almindeligt sprog, Logo er bredt kendt for sin brug af skildpaddegrafik , hvor kommandoer til bevægelse og tegning producerede linje- eller vektorgrafik , enten på skærmen eller med en lille robot betegnet en skildpadde . Sproget blev udtænkt til at undervise i programmeringskoncepter relateret til Lisp og først senere for at aktivere det, Papert kaldte " kropssyntonisk ræsonnement", hvor eleverne kunne forstå, forudsige og begrunde skildpaddens bevægelse ved at forestille sig, hvad de ville gøre, hvis de var skildpadde. Der er betydelige forskelle mellem de mange dialekter i Logo, og situationen er forvirret af det normale udseende af skildpaddegrafikprogrammer, der hedder Logo.

Logo er en multi-paradigme tilpasning og dialekt af Lisp , et funktionelt programmeringssprog . Der er ikke noget standardlogo, men UCBLogo har de bedste faciliteter til håndtering af lister, filer, I/O og rekursion i scripts og kan bruges til at undervise i alle datalogiske begreber, som UC Berkeley -lektor Brian Harvey gjorde i sit datalogi -logo Style trilogi.

Logo er normalt et fortolket sprog , selvom der er udviklet kompilerede logodialekter (såsom Lhogho og Liogo). Logoet er ikke store og små bogstaver, men bevarer den sag, der bruges til formatering.

Historie

Logo blev oprettet i 1967 hos Bolt, Beranek og Newman (BBN), et forskningsfirma i Cambridge, Massachusetts , af Wally Feurzeig , Cynthia Solomon og Seymour Papert . Dens intellektuelle rødder ligger i kunstig intelligens , matematisk logik og udviklingspsykologi . De første fire år med logo -forskning, udvikling og undervisningsarbejde blev udført på BBN. Den første implementering af Logo, kaldet Ghost, blev skrevet i LISP på en PDP-1 . Målet var at skabe et matematisk land, hvor børn kunne lege med ord og sætninger. Designet på LISP inkluderede designmålene for Logo tilgængelig strøm og informative fejlmeddelelser. Brugen af ​​virtuelle skildpadder muliggjorde øjeblikkelig visuel feedback og fejlfinding af grafisk programmering.

Den første fungerende Logo skildpadde robot blev oprettet i 1969. En display skildpadde gik forud for den fysiske gulvskildpadde. Moderne logo har ikke ændret sig meget i forhold til de grundlæggende begreber forud for den første skildpadde. Den første skildpadde var en bundet gulvfræser, ikke radiostyret eller trådløs . På BBN udviklede Paul Wexelblat en skildpadde ved navn Irving, der havde berøringssensorer og kunne bevæge sig fremad, bagud, rotere og dingle med sin klokke. De tidligste år lange skolebrugere af Logo var i 1968–69 på Muzzey Jr. High i Lexington, Massachusetts . De virtuelle og fysiske skildpadder blev først brugt af femteklasser på Broskolen i samme by i 1970–71.

Skildpadde og grafik

Animeret gif med skildpadde i MSWLogo ( Cardioid )

Logos mest kendte funktion er skildpadden (oprindeligt afledt af en robot med samme navn ), en " markør " på skærmen, der viste output fra kommandoer til bevægelse og lille indtrækbar pen, der sammen producerede linjegrafik. Det er traditionelt blevet vist enten som en trekant eller et skildpaddeikon (selvom det kan repræsenteres med et hvilket som helst ikon). Skildpaddegrafik blev tilføjet til logosproget af Seymour Papert i slutningen af ​​1960'erne for at understøtte Paperts version af skildpadderobotten , en simpel robot, der styres fra brugerens arbejdsstation, der er designet til at udføre de tegningsfunktioner, der er tildelt den, ved hjælp af et lille indtrækkeligt pennesæt ind i eller fastgjort til robotens krop.

Som en praktisk sag efterligner brugen af ​​skildpaddegeometri i stedet for en mere traditionel model skildpadderobotens faktiske bevægelseslogik. Skildpadden bevæger sig med kommandoer, der er i forhold til sin egen position, LEFT 90 betyder spin venstre med 90 grader. Nogle logoimplementeringer, især dem, der tillader brug af samtidighed og flere skildpadder, understøtter kollisionsdetektering og giver brugeren mulighed for at omdefinere udseendet af skildpaddemarkøren, hvilket i det væsentlige tillader, at logo -skildpadder fungerer som sprites .

Flere skildpadder understøttes af MSWLogo samt 3D -grafik. Input fra COM -porte og LPT -porte er også tilladt af MSWLogo via Windows GUI. Afbrydelser kan udløses via tastatur- og mushændelser. Enkle GIF -animationer kan også produceres på MSWLogo version 6.5 med kommandoen gifsave .

Skildpaddegeometri bruges også nogle gange i andre miljøer end Logo som et alternativ til et strengt koordineret adresseret grafiksystem. For eksempel er ideen om skildpaddegrafik også nyttig i Lindenmayer -systemet til generering af fraktaler .

Implementeringer

IBM LCSI Logo velkomstskærm
Kildekode og output i IBM LCSI -logo, der kører i DOSBox

Nogle moderne derivater af Logo tillader tusinder af uafhængigt bevægelige skildpadder. Der er to populære implementeringer: Massachusetts Institute of Technology 's StarLogo og Northwestern University Center for Connected Learning's (CCL) NetLogo . De tillader at udforske nye fænomener og kommer med mange eksperimenter inden for samfundsfag, biologi, fysik og andre områder. NetLogo er meget udbredt i agentbaseret simulering inden for biologi og samfundsvidenskab.

Selvom der ikke er nogen aftalt standard, er der bred enighed om kerneaspekter af sproget. I marts 2020 blev der talt 308 implementeringer og dialekter af Logo, hver med sine egne styrker. De fleste af disse 308 er ikke længere i vid udstrækning, men mange er stadig under udvikling. Kommercielle implementeringer, der er meget udbredt i skoler, omfatter MicroWorlds Logo og Imagine Logo .

Ældre og nuværende implementeringer omfatter:

  • Apple Logo til Apple II Plus og Apple Logo Writer til Apple IIe , udviklet af Logo Computer Systems, Inc. (LCSI), var de mest udbredte og udbredte tidlige implementeringer af Logo, der toppede i begyndelsen til midten af ​​1980'erne.
  • Aquarius LOGO blev udgivet i 1982 på patron af Mattel til Aquarius hjemmecomputer.
  • Atari Logo blev frigivet på patron af Atari til Atari 8-bit familien .
  • Color Logo blev udgivet i 1983 på patron (26-2722) og disk (26-2721) af Tandy til TRS-80 farvecomputeren .
  • Commodore Logo blev udgivet med undertitlen "A Language for Learning" af Commodore Electronics . Den var baseret på MIT -logoet og forbedret af Terrapin, Inc. Commodore 64 -versionen (C64105) blev frigivet på diskette i 1983; Den Plus / 4 versionen (T263001) blev udgivet den patron i 1984.
  • ExperLogo blev udgivet i 1985 på diskette af Expertelligence Inc. til Macintosh 128K .
  • Hot-Logo blev udgivet i midten af ​​1980'erne af EPCOM til MSX 8-bit computere med sit eget sæt kommandoer på brasiliansk portugisisk.
  • TI -logoet (til TI 99/4A -computeren) blev brugt i folkeskoler, hvilket understregede Logos nytteværdi i undervisningen i computergrundlag for nybegyndere.
  • IBM markedsførte deres egen version af Logo (P/N 6024076), udviklet i fællesskab af Logo Computer Systems, Inc. (LCSI), til deres dengang nye IBM PC.
  • UCBLogo , også kendt som Berkeley Logo, er en gratis cross-platform implementering af standardlogo, der sidst blev frigivet i 2009. George Mills på MIT brugte UCBLogo som grundlag for MSWLogo, som er mere raffineret og også gratis. Jim Muller skrev en bog, The Great Logo Adventure , som var en komplet Logo -manual, og som brugte MSWLogo som demonstrationssprog. Det er nu udgået, men Jim har frigivet alle filerne i pdf -format. (Se Logo Foundation -webstedet for detaljer.) MSWLogo har udviklet sig til FMSLogo: Et uddannelsesmæssigt programmeringsmiljø .
  • ObjectLOGO er en variant af Logo med objektorienterede programmeringsudvidelser og leksikalsk scoping. Version 2.7 blev solgt af Digitool, Inc. Den udvikles eller understøttes ikke længere og kører ikke på versioner af Mac -operativsystemet senere end version 7.5.
  • aUCBLogo en omskrivning og forbedring af UCBLogo .
  • Logo3D er en tredimensionel version af Logo og kan findes på Logo (programmeringssprog)SourceForge .
  • Dr. Logo blev udviklet af Digital Research og distribueret på computere, herunder IBM PCjr , Atari ST og Amstrad CPC .
  • Acornsoft Logo blev udgivet i 1985. Det er en kommerciel implementering af Logo til 8-bit BBC Micro og Acorn Electron computere. Det blev udviklet til Acorn Computers som en fuld implementering af Logo. Den har flere skærmskildpadder og fire-kanals lyd. Den blev leveret på to 16kB ROM'er med hjælpeprogrammer og drivere som medfølgende software.
  • I februar 1990 offentliggjorde elektronbruger Timothy Granthams enkle implementering af Logo for Acorn Electron under artiklen "Talking Turtle".
  • LibreLogo er en udvidelse til nogle versioner af LibreOffice. Udgivet i 2012, er det skrevet i Python . Det gør det muligt at skrive vektorgrafik i Writer.
  • Lego Logo er en version af Logo, der kan manipulere robot Lego -klodser, der er knyttet til en computer. Det blev implementeret på Apple II -computingsplatformen og blev brugt i amerikanske og andre gymnasier i slutningen af ​​1980'erne og begyndelsen af ​​1990'erne. Lego Logo er en forløber for Scratch .
  • Der kan findes mindst to webbaserede implementeringer ved hjælp af Berkeley Logo, HTML5, CSS3 og JQuery .
  • POOL er en dialekt af Logo med objektorienterede udvidelser, implementeret i 2014. POOL-programmer kompileres og køres i den grafiske IDE på Microsoft Windows . Der er et forenklet miljø på tværs af platforme til rådighed for systemer, der understøtter .NET Framework .
  • QLogo er en open-source og cross-platform omskrivning af UCBLogo med næsten fuld UCB-kompatibilitet, der bruger hardware-accelereret grafik.

Indflydelse

Logo var en primær indflydelse på programmeringssproget Smalltalk . Det er også hovedindflydelsen på Etoys uddannelsesmæssige programmeringsmiljø og sprog, som i det væsentlige er en Logo -variant skrevet i Squeak (selv en variant af Smalltalk ). Logo påvirkede proceduren/metode modellen i AgentSheets og AgentCubes til at programmere agenter svarende til forestillingen om en skildpadde i Logo. Logo gav det underliggende sprog for Boxer. Boxer blev udviklet ved University of California, Berkeley og MIT og er baseret på en læsefærdighedsmodel , der gør det lettere at bruge for ikke -tekniske mennesker.

KTurtle er en variant af Logo implementeret på Qt for KDE -miljøet løst baseret på Logo.

Yderligere to resultater af Logos indflydelse er Kojo , en variant af Scala, og Scratch , et visuelt, træk-og-slip-sprog, der kører i en webbrowser.

Se også

Referencer

Yderligere læsning

  • The Great Logo Adventure , Jim Muller, Doone Publications ISBN  0-9651934-6-2 ; nu udsolgt; kan downloades gratis i pdf -form fra MSWLogo -webstedet sammen med freeware MSWLogo -programmet
  • Til kunstig intelligens (1976) Tidlig AI -lærebog, hvor logo bruges i vid udstrækning. (Brug af Edinburgh University dialekten, AI2LOGO)
  • Turtle Geometry Abelson og diSessa
  • Børn Designere , Idit Harel Caperton, Ablex Publishing Corporation ISBN  0893917885 . Tilgængelig online
  • Læring med logo , Daniel Watt, McGraw Hill, ISBN  0-07-068570-3 . Tilgængelig via Amazon
  • Undervisning med logo: Byggesten til læring, Molly Watt og Daniel Watt, Addison Wesley (nu Pearson) 1986, ISBN  0-201-08112-1 Tilgængelig via Amazon
  • "Logo" (PDF) . Byte . Vol. 7 nr. 8. McGraw-Hill. 1982.( Specialudgave fra Byte -magasinet fra 1982 med flere logoartikler).

eksterne links