Najlepsza odpowiedź
Świetne pytanie!
Semantyka w języku odnosi się do tego, jak zmienia się znaczenie, gdy zmienia się struktura; w semantyce projektowania nie zależą od kolejności (jak w języku pisanym lub mówionym), ale od elementów i ich interakcji: materiału, rozmiaru, formy, tekstury, koloru; wszystkie one dostarczają semiotycznych wskazówek, które pozwalają zrozumieć, jak współdziałać z konkretnym projektem.
Na przykład użycie określonego materiału może sprawić, że pomyślisz, że przedmiot jest drogi lub tani; forma (na przykład rozmiar) może dać wskazówkę, czy jest przeznaczona dla młodszych lub starszych osób (pomyślmy na przykład o plastikowych klockach, takich jak lego). Pozycja krzesła może komunikować, że jest przeznaczona dla najważniejszej osoby na zjeździe itd.
Projektanci muszą wziąć pod uwagę wszystkie te subtelne (i nie tak subtelne) informacje, aby tworzyć przedmioty, z którymi ludzie mogą wchodzić w interakcje, bez podręczników lub wstydu, że nie wiedzą, co robić.
Polecam zbadanie teorii kultury materialnej.
Odpowiedź
Składnia i semantyka to elementy komunikacji między sobą i innymi podmiotami, jak komputery.
Składnia odnosi się do gramatycznego układu słów i znaki interpunkcyjne w zdaniach.
Semantyka odnosi się do znaczenia słów i znaków interpunkcyjnych, które są ułożone w sposób akceptowalny pod względem składniowym.
Rozważmy ect przykład, który na początku nie może być zrozumiany semantycznie przez nasz kompilator Plain English, który uważa zdanie za zrozumiałe semantycznie, gdy można je zredukować do postaci, którą może wykonać procesor komputera Intel x86.
podświetlone zdanie w tym programie…
… oczywiście wymaga pracy.
Problem polega na tym, że kompilator nie wie, co to jest„ skarbonka ”. Teraz wiemy , że skarbonka ma wiele cech (rozmiar, kształt, kolor itp.)…
… ale jedyną rzeczą, którą program musi wiedzieć o skarbonce, jest to, że może przechowywać pieniądze w różnych kwotach. Więc dodajemy prostą definicję wzdłuż tych linii (czerwona strzałka) i ponownie próbujemy skompilować nasz program:
Szczury! Wciąż się nie komunikuję. Może powinniśmy ROZMAWIAĆ GŁOŚNIEJ !!! Ale nie, zwykły angielski nie rozróżnia wielkości liter. I czekaj… błąd się zmienił. Tym razem myślę, że to słowo „dolar”, którego komputer nie rozumie. Dlatego wyjaśnimy „dolara”, jak pokazano poniżej, i spróbujemy ponownie skompilować:
Znowu szczury! Cóż, zobaczmy, czy możemy to naprawić, dodając zdanie mówiące kompilatorowi, jak myśleć o groszach:
Et voila ! Tym razem, kiedy kompilujemy, jesteśmy rozumiani semantycznie, a kiedy uruchamiamy program, to działa (wyjście konsoli pokazane poniżej):
Tymczasem w środku…
W ten sposób semantyczne zrozumienie tego zdania zostało osiągnięte w mózgu kompilatora.
• „10 dolarów” zostało rozpoznane jako literał numeryczny, po którym następowała jednostka miary, i zostało zamienione na zmienną numeryczną o wartości 1000 (10 dolarów razy 100 groszy za dolara).
• „Skarbonka” rozumiana była jako żądanie nowej zmiennej lokalnej typu „skarbonka” – co sprowadza się do bazowego typu „liczba” – i na stosie została przydzielona przestrzeń na tę zmienną, zainicjowaną do zera.
• Zdanie „Dodaj 10 dolarów do skarbonki” zostało zredukowane wewnętrznie tylko do niechlujnych podstawowych elementów – „Dodaj [dolary] do / do / do [skarbonki]” – gdzie słowa w nawiasy kwadratowe to nazwy typów.
• W żadnym z programów nie znaleziono takiej procedury lub w „Noodle” – bibliotece w prostym języku angielskim zawierającej przydatne typy, zmienne i procedury – zmienne zostały więc zredukowane do ich typów podstawowych, po jednej na raz, a każda kombinacja była sprawdzana pod kątem pasującej procedury.
• Na dolnym poziomie – „Dodaj [numer] w / do / do [numer]” – odpowiedni nagłówek procedury został znaleziony w Noodle. Eureka! W szczególności drugi nagłówek tej procedury…
… którego treść została napisana, jak widać, w języku, Mózgi Intel x86 mogą to zrozumieć (instrukcje języka asemblera zaznaczone na niebiesko to komentarze).
• Zatem kompilator wygenerował wymagane instrukcje Intel x86, aby (a) wypchnąć adresy dwóch zmiennych na stos i (b) wywołaj powyższą procedurę.
I to wszystko w przypadku tego zdania. Reszta programu została skompilowana w ten sam sposób.
Rozumienie semantyczne.Spotkanie umysłów.
Et voila!