Logo programovací jazyk
Logo je počítač programovací jazyk nejprve se vyvíjel v pozdní šedesátá léta, týmem u BBN vedl o Seymour Papert, Wallace Feurzeig, a Daniel Bobrow. Logo bylo původně o obsluhujících slovech a větách, proto jeho jméno, odvozený z Řeka formulovat “loga” znamenat “slovo”. Papert, profesor na MIT a autor Mindstorms: Děti, počítače, a silné nápady, později sčítal grafika želvy pro které logo je nyní nejslavnější.
Papert používal LISP ale měnil syntax tak to je hodně snadnější ke čtení. Jeden mohl říkat, že logo je Lisp bez parentheses. Dnes, to je známé hlavně pro jeho “grafiku želvy”, ale to má významný seznam zabývat se zařízeními, zacházení souboru a já/O zařízení a moci být používán učit většinu pojetí vědy o počítačích, jak Brian Harvey oddělá jeho “informatika styl loga” trilogie. Stejně to může být používáno připravit microworlds pro studenty vyšetřovat,
Tam být u konce 130 realizací loga, každý který má jeho vlastní síly. Populární linuxová implementace je UCBLogo. MSWLogo, jeho freewarový Windows derivát, je obyčejně použit ve školách v Spojeném království. Comenius logo je dostupné v holandský, německé, české etc. a je hodnota rozvažování.
Moderní derivát loga je variace, která dovolí tisíce “želv”, každé pohybování nezávisle. Tam jsou dvě populární implementace: MIT StarLogo a NetLogo. Tyto deriváty počítají se zkoumáním naléhavých jevů a jdou s mnoha experimenty v sociálních studiích, biologie, fyzika, a mnoho jiných věd. Ačkoli fokus je na vzájemných ovlivňováních velkého množství nezávislých agentů, tyto variace ještě zachytí originální chuť loga.
Nápad je že želva s perem připoutaným k tomu může být instruována dělat jednoduché věci jako pohyb předat 100 prostorů nebo se obrátit. Od těchto stavebních kamenů vy můžete postavit více komplexních tvarů jako čtverce, trojúhelníky, krouží -- používat tyto k domům remízy nebo plachetnicím.
Želva se pohybuje se příkazy, které jsou příbuzné s jeho vlastní pozicí, “odešel 90” mínil točit odešel 90 mír. Student mohl rozumět (a předpovídat a uvažovat o) pohyb želvy tím, že si představí co ona by dělala jestliže ona byla želva. Papert volal tento “syntonic těla” úvaha.
Myšlenka na grafiku želvy je také užitečná pro příklad v Lindenmayer systému pro fraktály buzení.
Pokračování jsou příklady kódu želvy. Zatímco zdánlivě velmi jednoduchý, tituly mohou být náchylné ke skupinám instrukcí, nezbytně vytvářet knihovny více komplexních příkazů. V praxi krátké formy jsou používány “odešel 90” je psán “LT 90”
Klíčová slova jsou obvyklé zapsané velké písmo pro začátečníky, ale více pokročilé texty používají malá písmena.
Pero želvy mohlo být zvedl a ztišil; kreslení tečkovaná linka byla základní. V tomto příkladě my budeme používat krátkou formu pro Vpřed, který je FD. Když učí toto říkat “FD prostor 10” je uloží alot frustrace. Něco psaný po; (středník) je ignorován tak moci být používán jako poznámka.
FD 10; (kreslit linku a pohybování) PENUP; (teď my jsme zvedli pero tak to nebude kreslit něco dokonce jestliže my přece se pohybujeme) FD 10; (ne kreslit ale pohybovat se) PENDOWN; (teď my jsme snížili pero tak to udělá čáru kdekoli želva se pohybuje) FD 10; (kreslit linku a pohybování) PENUP FD 10; (etc...) PENDOWN FD 10
Vy jste mohli také používat smyčku (opakované) příkazy. Toto by kreslilo přesnou stejnou krabici v prvním příkladě:
Opakovat 4 [FD 100 pravý 90]Který by vykonal příkaz”FD 100 pravý 90#rquote čtyřikrát. Kruh simplistic sestává z 360 rotací jednotlivce s krokem vpřed, tak”Opakovat 360 [FD 1 pravý 1]#rquote by měl očekávaný výsledek.EDALLK židli opakovat 4 [FD 100 RT 90] FD 200 konce
Jestliže vy používáte editora vy musíte odejít z toho a nové slovo je uloženo do availabe slovník ale vůle jsou ztraceni, když logo je vystoupil. Nyní nějaký čas Židle je zadán,”Opakovat 4 [FD 100 odešel 90] FD 30#rquote bude být vykonán. Vy jste mohli zvýšit tyto Opakovat 4 [židle] jestliže vy jste chtěli.
Byly tam dva nové instrukce - který být snadnější k použití než vysvětlit to. Thats duch loga.EDALL; (zadat režim editora pak aktuální proceduru)K ERASECHAIR PE opakuje 4 [FD 100 RT 90] FD 200 PPT konceCS předsedá vyčkávání 200 ERASECHAIR
EDALL (zadat režim editora pak aktuální proceduru) k židli: thesize opakují 4 [FD: thesize RT 90] FD: thesize FD: konec thesizeZkouškaCS opakuje 9 [židle 50 RT 20 předsedat 100 vyčkávání 50 RT 20]
Jestliže vy přece potřebujete pomoc. Typ Nápověda, nebo Pomáhat “domov (si všimnout jediné citační značky.)
Logo je interpretovaný jazyk. To není závislá osoba případu, ale udrží případ užitý na formátování. Je to zapsané linky. Je to kompromis mezi následným programovacím jazykem se strukturami bloku a funkční programovací jazyk. Tam je ne ' standard ' logo, ale UCBLogo je velmi pokládaný. To je vyučovací jazyk ale jeho seznam zařízení zacházení dělají to pozoruhodně užitečný pro výrobní užitečné skripty.
Každá linka je tvořena ' funkce volá . Jsou tam dva píše
- příkazy (který dělat něco “efekty” ale nevrátí hodnotu) jako tisk
- operace (který jen vrátit hodnotu, jeho výstup) jako součet, nejprve nebo readlist.
Zvláštní podmnožina operací volala predikáty, ten správný výstup slovo “pravdivý nebo “falešný, tito jsou konvenčně psáni s finálem “p” - jako emptyp, wordp, listp.
- Výrazy mohou být primitives, nebo moci být definován uživatelem.
- Výrazy mohou vzít nulu, jeden nebo více parametrů.
součet: x: y, produkt: x: y, rozdíl: x: y, kvocient: x: y. Infix je také dostupný.pomáhat “klíčové slovo; (vychová plný popis výrazu).Příkaz může volat sebe, toto je nazýváno rekurzí
Tam jsou tři datatypes v UCBLogo,
- slovo,
- seznam,
- sada.
Není tam žádné silné psaní. Interpret objeví datatype kontextem.
Jsou tam dva důležité symboly
- Dvojtečka
:- toto znamená ' obsah '
- Citace - toto znamená ' “slovo je ohodnoceno jako sám “', nebo ' “jeho hodnota po ohodnocení je stejná, zatímco to bylo předtím “'. Toto je důležité.
Domácí cvičení v Pascalu x:= y +3 se stojí v logu
dělat “x součet: y 3nebo
dělat “x součet: y “3
dělat vezme 2 parametry, druhý který tady je součet: y “3. Nyní součet bere dva ' parametry je a je ' operace ', tak výpočet je možný. "3 ocení k 3, a :y bere obsah věci volal y, tito jsou sečteni dávat číslo. Účinek dělat je umístit výsledek do prvního parametru.Alternativní způsob, jak se dívat na toto, možná, je že druhý parametr je ' projížděl kolem hodnoty ' zatímco první je ' projížděl kolem adresy. '
Dereference (uvnitř procedury) je možná se formou dělat: x: x + 1.
Diskutovat o seznamech přijde jako překvapení pro programátora Pascala, kdo zvládal to docela dobře bez nich, nicméně toto otevře mnoho nových možností. Sady jsou také poskytovány pro plachý.
- Operátoři existují přeměňovat slova na seznamy a seznamy do sad a couvat znovu.
- Tento datový typ má výhodu přes sadu v tom to je mnohem expandable data je vytěžené používání operace nejprve, butfirst, minule, butlast, člen a položka. Data jsou přidána používat fput věty a lput.
- Seznam může být považován za frontu s frontou operátorů a dequeue nebo zásobník s tlakem operací a popem.
- Rekurze poněkud než iterace je přirozená metoda seznamů procesu.
Příklad 9: používat primitives seznamu vyjmout prvních pět členů seznamu
: Jedna cesta byla by k iteraci použití.firstfive: alist ifelse lessp počet: alist 5 [operace: alist] [dělat “olist [] opakovat 5 [dělat “olist lput nejprve: alist: olist dělají “alist bf: alist] výstup: olist] konecb: Jiný, elegantnější cesta byla byfirstfive přehlídky [1 2 3 4 5 6 7 8 9] [1 2 3 4 5] firstfive foreach [1 2 3 4 5 6 7 8 9] přehlídka 10 -? [9 8 7 6 5]
firstn: num: seznam jestliže: num = 0 [výstup []] fput výstupu (nejprve: seznam) (firstn: num-1 butfirst: seznam) konecTato metoda používá rekurzi, a je příklad ' funkční ' poněkud než ' následný ' plánovací přístup.firstfive: vypsat firstn výstupu 5: konec seznamu
Standardní Pascal ovládací prvky jsou dostupné, tam je výběr
* ifelse test [dělat _ jestliže _ opravdový seznam] [dělat _ jestliže _ falešný seznam]Tam být iterace rozkazuje
* zatímco pečovat o [seznam instrukcí] * až do podmínky [seznam instrukcí] * opakované číslo [seznam instrukcí]Rekurze je logo preferovalo vzor zpracování.
Pascal programátor bude překvapený sérií seznamu založil struktury kontroly. Základní myšlenka je že vy máte dva seznamy
Operace [seznam příkazů] [mnoho datových položek]každý příkazů je aplikován v obratu do každého datových položek. Tam být několik těchto příkazů šablony se jmény jako mapa, platit, filtr, FOREACH, se snížit a se valit. Oni repesent čtyři chuti iterace šablony, známý jak explicitní-štěrbina, pojmenovaný-procedura, pojmenovaný-štěrbina (nebo Lambda) a procedura-text.
mapa přehlídky [? *?] [5 6 7] [25 36 49] filtr přehlídky [(počet?) > 4] [rychle hnědé liščí skoky přes lenivého psa] [rychle hnědé skoky] se ukážou foreach [1 2 3 4 5] [? * 10] [10 20 30 40 50]Provozovat [seznam příkazů]; provozovat seznam příkazů (nebo programy) od v programu.
Seznamy rekvizit
Seznam rekvizit je zvláštní seznam kde položky lichého čísla jsou jméno vlastnosti, a dokonce být hodnoty vlastnictví. Tam jsou tři příkazy k procesovému seznamu rekvizit.pprop: listname: jméno: hodnota; přidat nový pár k remprop seznamu: listname: jméno: hodnota; odstranit pár k seznamu přehlídka gprop: listname: jméno; dostat odpovídající hodnotu ze seznamu
Já/O příkazy
Text může být psán k oknu příkazu (výstupní potoční) používánítisk, přehlídka a ke grafickému okennímu používání popiska Standardní rozkazy jsou readlist readword readchar s normálním vstupním potokem být klávesnice. V unixové tradici potok vstupu může být měněn, tak vstup může přijít z diskového souboru. Podobně, výstup může být přesměrován. Technika bude známá Pascal programátorům - používat sekvenci
openread [název souboru] setread [název souboru] setreadpos nn readchar setread [] zavřít [název souboru].Tam jsou rovnocenné příkazy ke změně potok výstupu,
openwrite, openappend, setwrite, setwritepos nn. driblovat s [názvem souboru]Vytvoří přepis všeho to je psáno v nebo outputted k oknu příkazu.
nodribbleToto vypne to.
Grafika
Grafika želvy je silná metoda představovat myšlení ale logo také má nemnoho užitečný Karteziánské příkazy
domov; vrátí želvu k (0, 0) setx sety xx yy; pošle želvu, ještě kreslení k (xx, yy) seth nn; nastaví želvu na záhlaví nebo kompasový směrník (nn)
Příklad 10: počítat a kreslit sluneční hodiny pro danou šíři
Toto je typický zahradní číselník. Grafický moci být tištěný a transfered ke dřevu nebo drzosti dělat přesný zahradní chronometr.k číselníku cs se ukážou [typ ve vaší šíři jak celé číslo] dělají “readword šíře; použití keyboad vstup pro [i 0 6 1] [dělat “ang arctan hřích produktu: rozsahový opalovat produkt: i 15; rt vypočítavosti: ang fd 200 bk 200 lt: ang; kreslit ranní linkové lt: ang fd 200 bk 200 rt: ang; používat symetrii, aby udělal odpolední čáru] pu setx - 300 sety - 300 seth 90 pd; poslat želvu dolní části fd 300 seth 270 rt 90 -: fd šíře 300; kreslitstyl nebo gnomon pu domov pd; uklidit to konec Talíř slunečních hodin musí být spočítán pro jeho rozsahové použití vzorce
x = arctan (hřešit (rozsahový) * opalovat se (HourDiff * 15))Gnomon se natočí = 90 - rozsahový.
Tento číselník je přichystaný na 38N, šíře Berkeleya, Kalifornie - domov UCBLogo. Malá oprava by měla být dělána pro délku.
MSWLogo podporuje rozmanité želvy a 3D grafiku. MSWLogo dovolí vstup od COM přístavů a LPT porty a také ' hardware ' porty. MSWLogo také podporuje rozhraní oken tak já/O je dostupný skrze toto Gui - a klávesnice a události myši mohou odjistit přerušení.
Logo je pomalé, to není vhodné k processsing obrovitému množství dat - to je jazyk učení. Jestliže rychlost není záležitost anymore to je výchovně užitečnější sledovat koleno programu přes problém. Vizuální výstup dovolí toto. To pomáhá při pochopení studentů jak počítač pracuje následně přes instrukce.
Logo skóruje na grafice a MSWLogo poskytne použití dll oken.. Klíčová myšlenka pro učení Pascal je že studenti musí mistrovský ' ukazatele předtím oni mohou dělat nějakou užitečnou datovou strukturu teorie. Toto vyřadí všechny kromě nejzavázanější. V logu, seznamech, hromadách a frontách být triviální. Stromy jsou větší legrace. Všichni jsou rekurzivní v přírodě.
UCBLogo a MSWLogo zahrnuje základní Pascal intrepreter psaný v logu jako jeden z příkladů.
- Informatika styl loga, Brian Harvey, MIT stiskne (3 hlasitosti) ISBN 0-262-58148-5, ISBN 0-262-58149-3, ISBN 0-262-58150-7.
- Velké logo dobrodružství, Jim Muller, Doone publikace ISBN 0-9651934-6-2
Externí odkazy
- Berkeley logo (UCBLogo, GNU)
- MSWLogo: To dole načte MSWLogo.
- Comenius logo populární evropské logo.
- rLogo: Hrát si s želvou online (vy budete potřebovat Javu- umožnil prohlížeč). Toto jen realizuje grafiku.
- MIT StarLogo
- NetLogo
- Informatika styl loga kompletní text Briana Harveye je 3 klasika hlasitosti v pdf a jiné formáty.
- Jak uvažovat jako vědec počítače jak uvažovat jako vědec počítače, verze loga