Skocz do zawartości

Jezyk, skladnia i definicje


Gifanonim

Polecane posty

witam,

 

Temat zalozylem z powodu mojej dyskusji z HNB ( offtopic w innym temacie) na temat definicji składni jezyka.

No i jakos nie moge nigdzie tego znalezc co mówiłeś, wszędzie znajduje ze składnia to jest sposób zapisu kodu tak zeby kompilator zrozumial a nie to ze mozemy tworzyc funkcje, tablice dynamiczne, czy usunieto przeciazenia.

 

Sprawdzalem na necie, w ksiazkach i sie pytałem kumpli z pracy wszedzie sie spotykam z stwierdzeniem ze składnia to jest forma zapisu a nie rzeczy ktore nam jezyk udostępnia.

 

Wiec HNB jesli moglbys wyjasnij mi to ;P jesli ktos chce sie przyłączyc do dyskusji to zapraszam xD

 

@kajak i inni napaleńcy jezykowi

Błędy poprawie w domu bo w pracy nie mam worda ze sprawdzaniem błędów w J. polskim. :P

 

@down

Juz poprawilem, widzisz jeszcze jakies bledy moj ty mobilny slowniczku ? :P

"Bogowie to bugi ludzkich umysłów" Gifanonim ®

Link do komentarza
Udostępnij na innych stronach

"forma zapisu" : funkcje, tablice dynamiczne, przeciążenia mają specyficzną formę zapisu w języku Delphi. Inaczej wyglądają przeciążenia operatorów w FPC i inaczej w Delphi, co znaczy że różnią się składnią, a udostępniają tę samą funkcję.

 

Idąc dalej skoro przeciążanie operatorów zapisujemy w taki a nie inny sposób to i tablice zapisujemy w taki sposób: array of typ; a nie w sposób następujący: of typ array. To jest składnia, Delphi ma bogatszą składnię od TP i to nie jest ta sama składnia, bazuje na niej ale ją znacząco rozszerza i nie wszędzie jest kompatybilna więc jest trochę inna (przy prostym kodzie identyczna), zapis array of typ nie jest możliwy w TP i trzeba tworzyć dynamiczne tablice na wskaźnikach (więc TP też udostępnia tą funkcję [naokoło], ale nie jest ona WSPIERANA przez składnię, !SKŁADNIĘ!).

 

W Delphi mamy do czynienia z trochę inną formą zapisu. Wiele rzeczy działa wstecz ale nie wszystkie, bo TP nie zna tej składni. Nie zna składni interfejsów com które wspiera swoją SKŁADNIĄ Delphi. Nie ma klas których tworzenie wspiera SKŁADNIĄ (udostępnia ją do jej definiowania, ograniczania). Nie ma jednej pętli (for in do) którą można zapisać inaczej jako specyficzne for to do, więc for in do jest wspierane SKŁADNIĄ, jest jej elementem, składnia zezwala na jej istnienie, rozumie ją, akceptuje a TP nie bo ma inną SKŁADNIĘ i nie potrafi tego przetworzyć.

 

Delphi wspiera składnią wiele technik programowania których nie wspiera TP (wiele już wymieniłem w innym temacie). Więc języki te mają różną składnię.

 

Składnia wspiera różne techniki programowania obiektowe, proceduralne, modularne itd., albo używanie specyficznych danych.

 

Przynajmniej ja to tak rozumiem ;P

soon Delphi will be only for veterans and finally we all will die at the end…

delphi.dathox.com - nowinki z świata Delphi/Pascala

only programmers and drug dealers call their customers "users"

 

Oto cisza przed burzą, Chwile się dłużą.Z gór schodzi dużo chmur ku podnóżom.Ptaki milaczą, drogi suche jak wiór się kurzą, Ptaki milczą a drogi się kurzą.

Link do komentarza
Udostępnij na innych stronach

CYTAT(HNB @ pon, 11 cze 2007 - 14:03) Delphi wspiera składnią wiele technik programowania których nie wspiera TP (wiele już wymieniłem w innym temacie). Więc języki te mają różną składnię.

I tu się z tobą nie zgodzę... To że istnieje kilka różnic pomiędzy TP a Delphi (właściwie między pascalem a object pascalem) to nie znaczy, że mają inną składnię...

Gdyby składnia była inna to różnica pomiędzy kodem w TP, a Delphi byłaby całkowicie inna...

 

http://4programmers.net/Delphi/Sk%C5%82adnia_j%C4%99zyka

Niezbędnym elementem każdego języka programowania jest składnia. Słowem tym określa się specyficzne słowa kluczowe (elementy danego języka służące do sterowania pracą programu) oraz znaki, które muszą zostać zapisane w określonym porządku.

Piszę proste programy i stronki internetowe na zlecenie, zaliczenie...

Delphi, Pascal, C++, (X)HTML, CSS, trochę PHP, Javascript i MySQL

Kontakt: gg:1477872 e-mail: lewymati@wp.pl

Link do komentarza
Udostępnij na innych stronach

lewymati czy ty na dynie upadles ?

Wg ciebie jezyk angielski, niemiecki, polski, czeski itp maja ta sama skladnie ? Przeciez udostepniaja te same znaki do zapisu zdan (z wyjatakami)

 

to ze skladnia jest rozna nie znaczy ze musi byc calkowicie rozna. W czesci moze sie pokrywac ale to nie znaczy ze jest taka sama.

 

rownie dobrze mozna by tlumaczyc ze dodawanie i mnozenie to to samo przeciez 2+2 = 4 i 2*2 =4 wiec obie operacje sa sobie rownowazne ?

Always Dark<br />u1_tt_logo.png banner-1.pngexFabula-banner.pngson_banner_ubersmall.jpg

Link do komentarza
Udostępnij na innych stronach

Nie wiem czy do końca zrozumiałem zamierzenia autora, ale myślę, że dobrze. Otóż język programowanie składa sie właściwie z samej gramatyki bo to czy blok zapiszemy jako begin..end, czy {..} to tylko kwestia już bardziej umowna. I taka gramatyka składa się z 4 części:

alfabetu nieterminalnego - pomocniczego (N)

alfabetu terminalnego - końcowego (T)

zbioru produkcji - reguł

oraz punktu początkowego, który wskazuje na jakąś regułę, która zawsze ma być pierwsza.

I są 4 rodzaje gramatyk mają numerki od 0 do 3 i im większy numerek tym gramatyka daje większe możliwości (wyjąłem ze zbioru maszynę Turinga bo ona to już wszystko umożliwia). Produkcje są to rzeczy jakie możemy stworzyć przy użyciu alfabetu. Polega to na tym że mamy coś po lewej stronie i przeszukujmy zbiór produkcji która to samo ma po lewej i dopasowujemy prawą stronę, jeśli jest inna niż to co oferują produkcje to to oznacza błąd składni. I właśnie istnieje notacja Backusa-Naura, która umożliwia zapisanie produkcji. Wygląda ona tak:

A ::= Ba | Ab

B := Ba | O

i załóżmy że startowa produkcja to A więc możemy takie słowa uzyskać:

a , aaaa, ab, aab, aaabbb, ale już abab nie co jest błędem składni. I można tak opisać inne języki. Oto mały przykład gramatyki pascala (klamerki są dodatkiem, a nie częścią gramatyki):

::= begin end

::= { ; }

::= zm := wyr | |

while do |

repeat until |

if then

::= wyr rel wyr

::= | else

No i trzeba zacząć od pierwszej produkcji i idąc w lewo dobierać produkcje, aż wszystko zostanie zapełnione.

przykład w pascalu zgodny z tą gramatyką:

begin
a := 3+4;
while a >1 do a := a-1
end

Baza tysięcy lotnisk: http://airportsbase.com

Link do komentarza
Udostępnij na innych stronach

No nie, ale są różne kompilatory, jest gcc, Microsoftu, Borlanda i tylko gcc trzyma się dokumentacji ściśle. No i po za tym jest masa bibliotek które się różnią w zależności od wersji, zwłaszcza DirectXSDK, dlatego go już nie lubie, bo przykłady potrafią się nie kompilować na jednym SDk, a na tym sprzed 4 miesięcy kompilują. No i nie wiem w ogóle jak można porównywać Pascala Do Delphi, jakoś nikt nie porównuje C do C++, a przecież rozwój języka jest analogiczny. Tak samo nazwanie Delphi dialektem Pascala, to raczej FreePascal jest dialektem, przecież Delphi, zwłaszcza już 2006 jest całkowicie inny od Pascala. Jakoś nikt nie mówi że czeski to dialekt polskiego, tylko osobny język, a przecież korzenie są słowiańskie.

Baza tysięcy lotnisk: http://airportsbase.com

Link do komentarza
Udostępnij na innych stronach

oj,a potem powstaje najdłuższy post na forum, co przebił nawet humor, że sie nic nie dzieje, a się okłada temat, który jest chyba bardziej ciekawszy i trzymający się regulaminu niż co powinno być w silniku 3D co Toster już od razu zjechałeś, a temat miał o wiele więcej odpowiedzi, a nikt nie wspomniał aby zrobić offtop o TinkyWinky.

Baza tysięcy lotnisk: http://airportsbase.com

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...