Logo (limbaj de programare)

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 24 aprilie 2021; verificările necesită 5 modificări .
Siglă
Clasa de limba limbaj de programare instrucțional , limbaj de programare funcțional și limbaj de programare
Aparut in 1967
Autor Seymour Papert , Cynthia Solomon ,
Dezvoltator Papert, Seymour , Harel, Idita și Cynthia Solomon [d] [1]
A fost influențat Lisp
 Fișiere media la Wikimedia Commons

Logo ( English  Logo ) este un limbaj de programare de nivel înalt dezvoltat în 1967 de Wally Förzeg , Seymour Papert și Cynthia Solomon în scopuri educaționale pentru a preda copiilor de școală preșcolară și primară conceptele de bază ale programarii ( recursivitate , extensibilitate, etc.).

Prima dovadă științifică a succesului utilizării Logo-ului ca instrument de învățare a fost demonstrată de Idit Harel , un student al lui Papert, care a folosit Logo-ul pentru a-i învăța pe copii să programeze și să facă fracții în 1988 [2] .

Logo oferă un mediu în care copiii își pot dezvolta abilitățile de raționament și de rezolvare a problemelor.

Informații generale

O parte tipică și așteptată a limbajului și a mediului de programare Logo sunt instrumentele de grafică țestoasă , care, pe de o parte, fac posibilă vizualizarea programării învățării și, pe de altă parte, sunt combinate foarte organic cu utilizarea pe scară largă a recursiunii . .

Interprete de logo există pentru diverse platforme și sisteme de operare : Windows , DOS , Linux , Mac OS , Unix , etc. Există, de asemenea, multe dialecte de logo orientate pe obiecte , cum ar fi Object Logo , lansat în 1986 . În 1997, a fost lansată versiunea rusă - LogoMira .

Brian Harvey, autorul stilului logo-ului informatic în trei volume, a creat logo-ul Berkeley . Versiuni multi-agent ale Logo-ului - StarLogo și NetLogo .

Implementările tipice Logo (de la LCSI , de exemplu) oferă programatorului o bibliotecă de comenzi încorporate, o consolă de interpretare bazată pe text și o „foaie de program” pe care să plaseze instrucțiuni pentru înregistrarea noilor funcții. De asemenea, este prevăzut cel puțin un ecran grafic, cu cel puțin o broască țestoasă.

Multe implementări suportă multithreading  - la nivelul execuției comenzilor de către broaște țestoase și la nivelul capacității de a rula o comandă asincron și de a verifica ulterior dacă a fost finalizată. Este posibil să se transmită interpretului o listă de cuvinte generată programatic pentru execuție.

Logo-ul este mai avansat decât limbajele de programare procedurală BASIC și Fortran care sunt utilizate în mod obișnuit pentru a preda programarea. Cu toate acestea, implementările Logo nu au, în general, programe de fișiere bine concepute, iar acest lucru îl împiedică să fie adoptat pe scară largă ca limbaj de programare.

În esență, limbajul Logo este o adaptare a limbajului Lisp (unii îl numesc chiar „Lisp fără paranteze”).

Sintaxă și interpretare

În Logo, un program este o listă de „cuvinte”.

De regulă, implementările Logo-ului limitează ușor lista de caractere permise într-un cuvânt, astfel încât comenzile pot fi apelate și în rusă. Mai mult, multe implementări ale Logo-ului în limba rusă au comenzi în limba rusă sau sinonime în limba rusă încorporate pentru toate comenzile încorporate.

Cuvintele din listă sunt separate prin spații.

Cuvântul poate fi fie o comandă, fie un literal de unul dintre cele trei tipuri - un șir, un numeric sau un literal de listă. O comandă poate returna o valoare, caz în care este considerată o funcție. Literalele își întorc valoarea direct. Un literal șir este formatat ca un cuvânt precedat de ghilimele duble. Cuvintele formate din cifre sunt interpretate ca literale numerice. Pentru a forma o listă de cuvinte în textul programului, acestea sunt înconjurate de paranteze drepte.

Există, de asemenea, comenzi pentru salvarea și obținerea unei valori după nume, dar multe implementări o completează cu conceptul de variabilă - introducând o sintaxă de comandă compactă pentru obținerea valorii unei variabile. Prin urmare, pentru a obține valoarea unei variabile, este de obicei suficient să scrieți numele acesteia, prefixat cu două puncte.

Există o sintaxă specială pentru transmiterea unui număr nefix de parametri unor comenzi încorporate. Pentru a face acest lucru, se propune includerea comenzii și a tuturor parametrilor ei în paranteze, de exemplu: (СПИСОК :A :Б :В :Г 1 2 3 4)Pentru comenzile utilizatorului, această sintaxă nu este aplicabilă, deoarece nu există o sintaxă pentru descrierea procesării parametrilor trecuți în acest mod.

Lista comenzilor transmise interpretului este executată pe rând. Următorul cuvânt este interpretat ca o comandă din dicționarul curent al sistemului. Dacă ia parametri, atunci interpretul execută următorul cuvânt din listă pentru a obține o valoare de transmis ca prim parametru.

Dacă o comandă ia locul unui parametru, este de așteptat ca comanda să returneze o valoare. Și dacă valoarea returnată de următoarea comandă nu este destinată să fie transmisă unei alte comenzi, sistemul raportează o eroare dacă un astfel de apel este întâlnit în textul programului sau afișează valoarea dacă comanda a fost apelată în modul interactiv .

Este acceptată utilizarea formei infixe obișnuite de expresii ale matematicii și logicii pe operatori familiari, cum ar fi „(2 + 3) * 5” și „2 > 5”. Dar datorită faptului că, conform regulilor de bază ale limbajului, comanda este mai întâi, iar apoi parametrii ei, pentru operații aritmetice și logice de bază în unele dialecte (LCSI LogoWorlds și LogoWriter, de exemplu) există și comenzi, folosind care expresii iau forma „înmulțiți adăugați 2 3 5” și „mai mult? 2 5".

Există o comandă pentru a extinde dicționarul cu comenzi personalizate, acceptă un nou nume de comandă, o listă de parametri și o listă de comenzi.

Există două mecanisme principale pentru controlul execuției programului: instrucțiunea buclă cu un număr fix de repetări și recursivitate.

Salut Lume!

SALUTARE PRINT [Bună lume!] Sfârşit

În versiunea rusă a limbii Logo:

PENTRU SALUTURI SCRIE [Bună lume!] SFARSIT

Implementări

În iunie 2010, au existat cel puțin 246 de implementări ale Logo [3] de când a fost creat limbajul.

În prezent, nu există un standard unic pentru limbajul Logo, deși anumite convenții despre aspectele de bază ale limbii sunt larg acceptate. Dialectele Logo au diferențe semnificative. Situația este complicată de prezența unui număr de programe de grafică țestoasă, care sunt numite în mod eronat „Logo”.

Cea mai utilizată și dominantă implementare a limbajului la acea vreme a fost sistemul Apple Logo , dezvoltat de LCSI pentru computerul Apple II și distribuit în anii 1980 . În Bulgaria , acest produs a fost localizat în bulgară și rusă pentru computerele compatibile Apple II din seria Pravets 8 , distribuit sub numele „Logo 2.0” și utilizat pe scară largă în procesul educațional din Bulgaria și URSS . Ulterior, o localizare rusă a produsului LCSI pentru MS-DOS numită LogoWriter a fost lansată în Rusia .

O implementare gratuită pe mai multe platforme a UCBLogo [4] , cunoscută și sub numele de Logo Berkeley , este utilizată pe scară largă astăzi , dar nu are o interfață grafică rudimentară cu utilizatorul .

MSWLogo [5] și versiunea sa mai nouă FMSLogo [6] [7] sunt disponibile pentru Microsoft Windows și sunt utilizate pe scară largă în școlile din Marea Britanie și Australia . De asemenea, implementările comerciale ale MicroWorlds Logo [8] și Imagine Logo [9] sunt folosite în școlile occidentale .

MSWLogo și FMSLogo acceptă mai multe broaște țestoase și grafică 3D, precum și I/O avansate și alte extensii.

Pentru MacOS X , este disponibilă o implementare gratuită a ACSLogo [10] , care are o interfață grafică destul de avansată, localizare în mai multe limbi și vă permite să adăugați propriile localizări.

În Rusia, procesul educațional utilizează localizările rusești ale LCSI MicroWorlds pentru Windows și Mac OS X numite „LogoMira” și „PervoLogo” [11] .

Vezi și

Note

  1. 1 2 3 https://www.ncwit.org/profile/cynthia-solomon
  2. Bob Johnstone. Nu contează laptopurile: copii, computere și transformarea învățării . - iUniverse, 2003-08-17. - S. 130. - 362 p.
  3. Proiectul Logo Tree (link în jos) . Data accesului: 4 iulie 2009. Arhivat din original pe 6 martie 2009. 
  4. Logo Berkeley (UCBLogo) . Consultat la 2 februarie 2010. Arhivat din original pe 25 ianuarie 2010.
  5. MSWLogo, Un limbaj de programare educațional . Preluat la 2 februarie 2010. Arhivat din original la 12 octombrie 2015.
  6. FMSLogo . Consultat la 2 februarie 2010. Arhivat din original pe 15 septembrie 2015.
  7. Planurile arhivate 4 octombrie 2009 la Developer Wayback Machine includ o versiune multiplatformă
  8. Bun venit la LCSI . Preluat la 2 februarie 2010. Arhivat din original la 8 octombrie 2015.
  9. Imagine Logo - Evaluare software educațional - TEEM (link nu este disponibil) . Consultat la 2 februarie 2010. Arhivat din original pe 29 august 2009. 
  10. ACSLogo pentru Mac OS X. Consultat la 2 februarie 2010. Arhivat din original pe 23 martie 2010.
  11. Logo produse în limba rusă (link inaccesibil) . Consultat la 4 iulie 2009. Arhivat din original la 3 august 2009. 

Link -uri

Literatură