• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Błędy semnatyczne w programowaniu

Object Storage Arubacloud
+2 głosów
700 wizyt
pytanie zadane 28 grudnia 2021 w Rozwój zawodowy, nauka, praca przez maxkolanko1998 Gaduła (3,230 p.)

Wiem co to jest semantyka. To jest znajomość tego co robi dana instrukcja w języku programowania. Tylko bardziej chodzi mi o interpretacje tego

Wykrywanie niespójności semantycznych opiera się na znajomości przywoływanych obiektów, w szczególności na znajomości atrybutów tych obiektów i relacji między nimi.

i tego

Problem stanowi treść programu, która odbiega od zamierzonej, tj. jej sens jest sematycznie niezgodny z założonym rozumowaniem. Identyfikacja tego rodzaju błędów wymaga śledzenia danych wyjściowych programu i analizy wstecznej jego przebiegu.

mógłbym prosić o pomoc gdyż jestem początkujący. Dziękuje

3 odpowiedzi

+2 głosów
odpowiedź 28 grudnia 2021 przez SzkolnyAdmin Szeryf (86,360 p.)

@Chess, twój przykład to błąd składniowy - zestawie poprawnych wyrażeń języka nie ma defg, lecz jest def. Błędem semantycznym będzie np. próba wywołania nie istniejącej funkcji. W twoim przykładzie zdefiniowałeś funkcję makeColor(), zatem próba wywołania funkcji makeColors() da błąd semantyczny - nazwa funkcji jest prawidłową nazwą dopuszczalną w języku, ale nie ma ona znaczenia dla programu (nie istnieje dla niego).

1
komentarz 28 grudnia 2021 przez Chess Szeryf (76,710 p.)
Ogólnie głupot nie napisałem.

Mógłbym naciągnąć do:

defg - definicja grupy funkcji

def - definicja zwykłej funkcji

Litera "g" od razu mówi, co będzie robić konstrukcja języka i jaką pełni rolę.

https://4programmers.net/Forum/Newbie/256023-czym_jest_semantyka_w_programowaniu?p=1163037#id1163037
komentarz 31 grudnia 2021 przez maxkolanko1998 Gaduła (3,230 p.)
Można zatem powiedzieć że semantyka odnosi się do znaczenia poszczególnych instrukcji np.if, for, while. Do znaczenie to mam na myśli za co jest odpowiedzialna każda z tych instrukcji, co robi
0 głosów
odpowiedź 28 grudnia 2021 przez Chess Szeryf (76,710 p.)
edycja 28 grudnia 2021 przez Chess

Semantyka w Programowaniu

Po zrozumieniu słowa kluczowego semantyka, nie będziesz miał kłopotów, wystarczyło zapytać encyklopedii. Masz ją nawet na szafie, taką niebieską cegłę.

defg makeColor()

def makeColor()

Błąd w nazwie przy definiowaniu funkcji. W języku ABC słowo kluczowe, to def, a nie defg.

komentarz 28 grudnia 2021 przez maxkolanko1998 Gaduła (3,230 p.)

No dobra ale gdybyś swoimi słowami miał skomentować to

Wykrywanie niespójności semantycznych opiera się na znajomości przywoływanych obiektów, w szczególności na znajomości atrybutów tych obiektów i relacji między nimi.

i to

Problem stanowi treść programu, która odbiega od zamierzonej, tj. jej sens jest sematycznie niezgodny z założonym rozumowaniem. Identyfikacja tego rodzaju błędów wymaga śledzenia danych wyjściowych programu i analizy wstecznej jego przebiegu.

to co byś powiedział.

komentarz 28 grudnia 2021 przez Chess Szeryf (76,710 p.)

4p, ładnie wyjaśnione.

Semantyka, to przypisanie roli konkretnej konstrukcji.

prints Hello World;

Wypisz typ string.

show (1,2,3);

Przypisuję konstrukcji show rolę odpalania kolejno w kodzie funkcji, nie po nazwie.

show nie ma "zaimka", czy post imka, jak showf, lecz w dokumentacji jest opisane, co wyłącznie do jakich zadań ma służyć show.

I teraz jak napiszę show (&, g);, to popełniłem błąd semantyczny, bo zmuszam show, żeby wypisał na wyjście &g, natomiast nie jest od tego. Zakończy się błędem, show only agreement on calling given functions/methods.

komentarz 28 grudnia 2021 przez Wiciorny Ekspert (270,170 p.)

@Chess, totalne bzdury sematyka dotyczy języka ... i jego sposobu wyrażania a nie to  czy "napiszesz wyrażenie tak czy inaczej" to jest niższy poziom abstrakcji, więc jeśli nie wiesz ... to nie pisz bzdur 

komentarz 28 grudnia 2021 przez Chess Szeryf (76,710 p.)
No zgoda. Nie musi być prints, może być print, print_any, tak dla wizualizacji. Porównując do HTML, footer to stopka, czyli dół strony, a prints to wypisywanie stringa.
komentarz 29 grudnia 2021 przez Wiciorny Ekspert (270,170 p.)
print nie może być bo jest kluczowe... w semantyce pythona np uznane to będzie za złamanie zasady
0 głosów
odpowiedź 28 grudnia 2021 przez maxkolanko1998 Gaduła (3,230 p.)

Ok. A czy w takim bądź razie błąd semantyczny objawia się tym że wynik który zostanie zwrócony będzie się nieznacznie różnił od tego co chciał otrzymać ostatecznie programista czy będzie się objawiał tym że otrzyma zupełnie coś innego.

let tablicaLiczb = [1,2,3,4,5];

for(let i = 1; i < tablicaLiczb.length; i++){

      console.log(tablicaLiczb[i]);

}





i otrzymuje coś takiego

2

3

4

5

,a spodziewałem się jakiegoś komunikatu błędu bo tu
 

for(let i = 1; i < tablicaLiczb.length; i++)


zmiast zaczynać od 0 czyli tak
 

for(let i = 1; i < tablicaLiczb.length; i++)


zaczynam od 1.

komentarz 28 grudnia 2021 przez Wiciorny Ekspert (270,170 p.)

totalnie nie, nie musi się zaczynać od 0, może od każego innego elementu ... równie dobrze może być zależne od innej zmiennej, bo to ty definiujesz pętle ... i to ty nadajesz jej warunki semantyka nie określa tego jak działa wyrażenie pętli tzn, po czym iteruje, jak iteruje i na jakich elementach 

semantyce podlega to że "for" jest zarezerwowane dla pętli - to nazwa pętli, nie możesz zatem mieć zmiennej var for; 

komentarz 28 grudnia 2021 przez maxkolanko1998 Gaduła (3,230 p.)
ok dzięki
komentarz 29 grudnia 2021 przez SzkolnyAdmin Szeryf (86,360 p.)

@maxkolanko1998, to z kolei błąd algorytmu, który zastosowałeś.

Podobne pytania

0 głosów
4 odpowiedzi 762 wizyt
0 głosów
1 odpowiedź 713 wizyt
pytanie zadane 15 sierpnia 2017 w Rozwój zawodowy, nauka, praca przez Gambr Dyskutant (7,530 p.)
0 głosów
3 odpowiedzi 615 wizyt
pytanie zadane 15 kwietnia 2017 w Rozwój zawodowy, nauka, praca przez sapero Gaduła (4,100 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...