Bästa svaret
Bra fråga!
Semantik i språk hänvisar till hur betydelsen förändras om strukturen ändras; i design beror semantik inte på sekvensen (som i skrivet eller talat språk) utan på elementen och hur dessa samverkar: material, storlek, form, struktur, färg; alla dessa ger semiotiska ledtrådar som låter dig förstå hur man interagerar med en viss design.
Till exempel kan användningen av ett visst material få dig att tro att ett objekt är dyrt eller billigt; formen (storlek till exempel) kan ge en ledtråd om den är avsedd för yngre eller äldre människor (tänk till exempel på plastbyggstenar, som lego). En stolposition kan kommunicera att den är avsedd för den viktigaste personen i återföreningen och så vidare.
Formgivare måste ta hänsyn till alla dessa subtila (och inte så subtila) bitar av information för att skapa objekt som människor kan interagera med, utan manualer eller bli generade för att de inte vet vad de ska göra.
Jag skulle rekommendera att utforska teorin om materialkultur.
Svar
Syntax och semantik är båda delar av att kommunicera med varandra och med andra enheter, som datorer.
Syntax avser det grammatiska ord av ord och skiljetecken i meningar.
Semantik avser betydelsen av ord och skiljetecken som är ordnade på ett syntaktiskt godtagbart sätt.
Låt oss betrakta en syntaktiskt korrigering ect-exempel som först inte kan förstås semantiskt av vår Plain English-kompilator, som anser att en mening är semantiskt förstått när den kan reduceras till en form som en Intel x86-datorprocessor kan utföra.
markerad mening i det här programmet …
… behöver uppenbarligen arbete.
Problemet är att kompilatorn inte vet vad en” spargris ”är. Nu vi vet att en spargris har många egenskaper (storlek, form, färg osv.) …
… men det enda programmet behöver veta om en spargris är att det kan hålla pengar i olika belopp. Så vi lägger till en enkel definition längs dessa linjer (röd pil) och försöker kompilera vårt program igen:
Råttor! Kommunicerar fortfarande inte. Kanske vi borde prata med högtalare !!! Men nej, vanlig engelska är inte skiftlägeskänslig. Och vänta … felet har förändrats. Den här gången tror jag att det är ”dollar” -ordet som datorn inte förstår. Så vi förklarar “dollar” som visas nedan och försöker kompilera igen:
Råttor igen! Tja, låt oss se om vi kan fixa det genom att lägga till en mening som berättar kompilatorn hur man tänker på pennies:
Et voila ! Den här gången vi sammanställer förstås vi semantiskt och när vi kör programmet fungerar det (konsolutgången visas nedan):
Under tiden, på insidan …
Så uppnåddes semantisk förståelse för den meningen i kompilatorns hjärna.
• ”10 dollar” kändes som en numerisk bokstav följt av en måttenhet och konverterades till en numerisk variabel med värdet 1000 (10 dollar gånger 100 pennies per dollar).
• ”En spargris” förstås som en begäran om en ny lokal variabel av typen ”spargris” – som minskar till bastypen ”nummer” – och utrymme för denna variabel, initialiserad till noll, tilldelades på stacken.
• Meningen ”Lägg till 10 dollar till en spargris” reducerades internt till bara de slarviga väsentligheterna – ”Lägg till [dollar] i / i / till [spargris]” där orden i hakparenteser är typnamn.
• Ingen sådan rutin hittades i varken programmets kod eller i ”Noodle” – det vanliga engelska biblioteket med praktiska dandytyper, variabler och rutiner – så variablerna reducerades till sina bastyper, en i taget, där varje kombination kontrollerades för en matchande rutin på väg ner.
• På den nedre nivån – ”Lägg till [nummer] i / i / till [nummer]” – hittades motsvarande rutinrubrik i Nudeln. Eureka! Närmare bestämt den andra rubriken i den här rutinen …
… vars kropp var skriven, som du kan se, på ett språk som Intel x86-hjärnor kan förstå (monteringsspråkuttalanden i blått är kommentarer).
• Så genererade kompilatorn nödvändiga Intel x86-uttalanden för att (a) skicka adresserna till de två variablerna i stacken och (b) ring rutinen ovan.
Och det handlar om den meningen. Resten av programmet sammanställdes på samma sätt.
Semantisk förståelse.Ett sinnesmöte.
Et voila!