Cel mai bun răspuns
Întrebare excelentă!
Semantica în limbaj se referă la modul în care se schimbă sensul dacă structura se schimbă; în design semantica nu depinde de secvență (ca în limbajul scris sau vorbit), ci de elementele și modul în care acestea interacționează: material, dimensiune, formă, textură, culoare; toate acestea oferă indicii semiotice care vă permit să înțelegeți cum să interacționați cu un anumit design.
De exemplu, utilizarea unui anumit material vă poate face să credeți că un obiect este scump sau ieftin; formularul (dimensiunea, de exemplu) poate da un indiciu dacă este destinat persoanelor mai tinere sau mai în vârstă (gândiți-vă, de exemplu, la blocuri de construcții din plastic, cum ar fi lego). Poziția unui scaun poate comunica că este destinată celei mai importante persoane din reuniune și așa mai departe.
Proiectanții trebuie să ia în considerare toate aceste informații subtile (și nu atât de subtile) pentru a putea creați obiecte cu care oamenii pot interacționa, fără manuale sau fără a fi jenat pentru că nu știu ce să facă.
Aș recomanda explorarea teoriei culturii materiale.
Răspuns
Sintaxă și semantică sunt ambele părți ale comunicării între ele și cu alte entități, la fel ca computerele.
Sintaxa se referă la aranjamentul gramatical al cuvintelor și semne de punctuație în propoziții.
Semantica se referă la care înseamnă de cuvinte și semne de punctuație care sunt aranjate într-un mod acceptabil din punct de vedere sintactic.
Să luăm în considerare o corecție sintactică ect exemplu care nu poate fi, la început, înțeles semantic de compilatorul nostru Plain English, care consideră că o propoziție este înțeleasă semantic atunci când poate fi redusă la o formă pe care o poate executa un procesor de computer Intel x86.
propoziție evidențiată în acest program …
… evident, are nevoie de muncă.
Problema este că compilatorul nu știe ce este o„ pușculiță ”. Acum știm că o pușculiță are o mulțime de caracteristici (dimensiune, formă, culoare etc.) …
… dar singurul lucru pe care trebuie să-l știe programul despre o pușculiță este că poate deține bani în diferite sume. Așadar, adăugăm o definiție simplă de-a lungul acelor linii (săgeata roșie) și încercăm să compilăm din nou programul nostru:
Șobolani! Încă nu comunicăm. Poate ar trebui să vorbim mai tare !!! Dar nu, engleza simplă nu ține cont de majuscule și minuscule. Și așteptați … eroarea s-a schimbat. De data aceasta, cred că este cuvântul „dolar” pe care computerul nu îl înțelege. Așadar, explicăm „dolarul” așa cum se arată mai jos și încercăm să compilăm din nou:
Șobolani din nou! Ei bine, să vedem dacă putem rezolva asta adăugând o propoziție care îi spune compilatorului cum să se gândească la bănuți:
Et voila ! De data aceasta, când compilăm, suntem înțelese semantic și când rulăm programul, acesta funcționează (ieșirea consolei este prezentată mai jos):
Între timp, pe dinăuntru …
Așa s-a ajuns la înțelegerea semantică a propoziției în creierul compilatorului.
• „10 dolari” a fost recunoscut ca un literal numeric urmat de o unitate de măsură și a fost convertit într-o variabilă numerică cu o valoare de 1000 (de 10 dolari de 100 de bani pe dolar).
• „O pușculiță” a fost înțeleasă ca o cerere pentru o nouă variabilă locală de tip „pușculiță” – care se reduce la tipul de bază „număr” – și spațiul pentru această variabilă, inițializat la zero, a fost alocat pe stivă.
• Propoziția „Adăugați 10 dolari la o pușculiță” a fost redusă, la nivel intern, doar la esențialul neglijent – „Adăugați [dolari] în / în / la [pușculița” ”- unde cuvintele din parantezele pătrate sunt nume de tipuri.
• Nu a fost găsită nici o astfel de rutină nici în program cod sau în „Noodle” – biblioteca Plain English a tipurilor, variabilelor și rutinelor la îndemână – astfel variabilele au fost reduse la tipurile lor de bază, una câte una, fiecare combinație fiind verificată pentru o rutină de potrivire la coborâre.
• La nivelul inferior – „Adăugați [număr] în / în / la [număr]” – a fost găsit un antet de rutină corespunzător în Noodle. Eureka! Mai exact, al doilea antet al acestei rutine …
… al cărui corp a fost scris, după cum puteți vedea, într-un limbaj care Creierele Intel x86 pot înțelege (declarațiile limbajului asamblorului în albastru sunt comentarii).
• Deci, compilatorul a generat instrucțiunile Intel x86 necesare pentru a (a) împinge adresele celor două variabile din stivă și pentru a (b) apelați rutina de mai sus.
Și cam atât pentru propoziția respectivă. Restul programului a fost compilat în același mod.
Înțelegere semantică.O întâlnire a minților.
Et voila!