Spis treści
Dyskusja:Pascal (język programowania)
Dodaj tematOcena jakości
[edytuj kod]- Zalążek/wysokie - hasło istotne z punktu widzenia przynajmniej historii informatyki, ale poziom opracowania jest bardzo niski. Brak źródeł, więcej listingów niż właściwego tekstu, wątpliwości dot. weryfikowalności niektórych stwierdzeń. --Zyx (dyskusja) 12:17, 15 wrz 2010 (CEST)
Luźne dyskusje
[edytuj kod]Uważam, że instrukcja writeln w programie przykładowym powinna być napisana z wcięciem (np. 2 znaki). Taka postać lepiej będzie oddawać strukturalną naturę Pascala.
- Kliknij na Edytuj i popraw!
--tsca 12:01, 26 cze 2004 (CEST)
Zgadzam się. polecenie writeln powinno być wcięte. Mariusz G 12:23, 26 cze 2004 (CEST) Można by tu zrobić małą encyklopedię języka Pascal. Znajdzie się wielu pasjonatów tego języka, jak choćby ja tkoomzaaskz@o2.pl We FreePascalu jest już przeciążenie operatorów dlatego w sumie możnaby to poprawić na liście +/-
Lazarus to raczej RAD niż IDE
[edytuj kod]Integrated Development Enviroment (Zintegrowane Środowisko Programistyczne) - to jest określenie ogólne na programy do edytowania kodu "wbudowane w kompilator" - wiec nawet jest nim standardowy edytor z TP i FPC - do czego zmierzam - Lazarus to coś więcej, "klon Delphi" a Delphi to program RAD typu (Rapid Application Development - Szybkie Tworzenie Aplikacji) czyli coś o wiele bardziej skomplikowanego niż IDE.
lepszy zapis a:=a+5 i rzutowanie typów
[edytuj kod]Zamiast a:=a+5; można pisać inc(a,5); takie rozwiązanie jest wydajniejsze i bardziej zwięzłe. Poza tym, można w Pascalu rzutować typy byte na bool, program:
var a: boolean; b: byte = 5; begin a:=boolean(b>3); writeln(a); readln; end.
wypisze na ekranie true
Co do pierwszego można, ale autor chciał porównać, nie pamiętam też, czy w standardowym Pascalu była instrukcja Inc. W proponowanym wyżej kodzie nie występuje rzutowanie typów. Operatory porównania zwracają wartość typu logicznego (boolean), i tak jest w tym przypadku b > 3. Przykładem rzutowania jest wyrażenie a := boolean(b+3), dodawanie zwraca liczbę. Opis w artykule jest pisany przez entuzjastę C i dlatego trochę wypatrzony. Nieprawdziwe jest stwierdzenie "Zabiegi w rodzaju rzutowania zmiennej typu całkowitego na typ Bool są częstą praktyką - w Pascalu kompilator się na to nie zgodzi." Typy całkowite i boolean są "kompatybilene" i można między nimi wykonywać operacje rzutowania. W typach prostych nie można rzutować między typami zmiennopozycyjnymi a całkowitymi i boolean, są też ograniczenia w rzutowaniu typów złożonych. StoK (dyskusja) 12:54, 28 wrz 2008 (CEST)
Przyklady
[edytuj kod]Czy jest sens podawac tyle przykladowych programow? To samo mozna znalesc na pierwszej stronie w google, a niewiele mowi o samym jezyku. Moze lepiej pokazac takie elementy jak roznica miedzy przypisaniem a porownaniem? opisac strukture blokowa, sposob deklarowania zmiennych, etc? Filip (dyskusja) 21:26, 16 kwi 2009 (CEST)
Silna typizacja dla początkujących? POV...
[edytuj kod]"Pascal bardzo rygorystycznie podchodzi do kontroli typów, tj. sprawdza czy do zmiennej typu A nie próbuje się przypisać wartości typu B. Jest to dobra cecha języka dydaktycznego, ale dla doświadczonego programisty może być uciążliwa." Hmm... Nie do końca. Przecież typizacja to nie jest czysty wymysł projektantów języka, ale wynika wprost z tego, w jaki sposób są przechowywane i obliczane wewnętrznie dane na komputerze - np. liczba całkowita może zajmować 4 bajty, zmiennoprzecinkowa 8, string - liczba znaków + 1 etc. I jeżeli np. chcemy dodać dwie liczby całkowite to jeśli trzymamy je obie w postaci Integer to to jest bodajże jedna instrukcja kodu maszynowego. Natomiast jeśli trzymamy je w postaci dwóch łańcuchów (tzn. zamiast 2 i 4 mamy "2" i "4") to musimy,jawnie, czy niejawnie, dokonać wpierw konwersji stringa na liczbę całkowitą, żeby procesor mógł się połapać. Poza tym samo twierdzenie, że kontrola typów jest dla początkujących, a nie dla doświadczonego programisty jest sporym POV. Ja mimo, że programuję już ładnych parę lat coraz bardziej doceniam silną typizację w takich językach jak C++ czy Java i męczy mnie np. PHP gdzie wszystko może być wszystkim, i nie wiadomo co zrobić, żeby uzyskać taki efekt jaki się chce, bo intepreter robi wszystko za twoimi plecami. dopisane później: ah, bo tu w jednej z poprzedniej wersji było "Jest to dobra cecha języka dydaktycznego, ale w przypadku doświadczonego programisty może być uciążliwa Np. sztuczki, typu rzutowanie zmiennej typu całkowitego na typ Bool jest częstą praktyką - w Pascalu kompilator się na to nie zgodzi." Trochę nieudolnie napisane, nic dziwnego, że później ktoś wywalił to zdanie o sztuczkach i niezgadzaniu się kompilatora, zmieniając jednocześnie cały sens wypowiedzi. Wobec tego zmieniam ten POV na neutralny odnośnik do hasła na wiki Silna Typizacja.
Niepoprawne zdanie
[edytuj kod]Trzeba poprawić to zdanie: "Popularność Pascala w Polsce była większa niż w innych krajach ze względu na dostępność kompilatorów w pirackich wersjach (zanim pojawiło się prawo ochrony własności intelektualnej), prostotę języka oraz jego popularyzację przez wyższe uczelnie." Popularność języka nie była większa w Polsce niż w innych krajach ze względu na prostotę. Chyba, że za granicą łatwiej rozumieją trudne rzeczy ;)
- Jeśli uważasz, że artykuł w Wikipedii wymaga zmian, poprawek lub rozbudowy – kliknij przycisk Edytuj u góry strony. Każdy może wprowadzać zmiany, nawet nie trzeba w tym celu zakładać konta! Należy tylko pamiętać o podaniu źródeł w formie przypisów (zob. szablon {{Cytuj}}). W Wikipedii trzymamy się zasady „śmiałego edytowania”, więc nie obawiaj się, że popełnisz błędy. Zajrzyj na stronę dotyczącą tworzenia artykułów lub poeksperymentuj na stronach testowych., Sir Lothar (dyskusja) 22:37, 17 paź 2009 (CEST)
Popularność Pascala ..
[edytuj kod]Hmm, chyba nie w tym rzecz. Wymieniane są prostota, edukacyjność, piractwo i tego typu bzdury. Jestem przekonany (a znam Pascala jak mało kto) że żadne stwierdzenie nie oddaje sedna sprawy. Poza tym to tylko utrwalanie stereotypów w stylu wyższości świąt BN nad świętami WN jak to było za czasów gdy zwolennicy C/C++ byli gotowi walczyć na noże z preferującymi Pascala. Nie utrwalajcie mitów znając ten język powierzchownie. Moja opinia - uważam ten język za na wskroś genialny, posiadający "drugie dno". Można w nim pisać zarówno niechlujnie, byle jak i takież będą nasze programy (mimo że działające) ale można też starannie i w sposób przemyślany. Można pisać wysokopoziomowo, polegając wyłącznie na standardowych procedurach, można też niskopoziomowo z assemblerem i czystym kodem maszynowym włącznie. Można w nim na prawdę dużo, o ile tylko się chce. Wszystko (jak zwykle) zależy od programisty. Wracając do sedna. W czym rzecz? Pascal został od początku zaprojektowany jako język uniwersalny i przystępny. Jego uniwersalność opiera się na strukturalności, definiowalności, możliwościach rozbudowy w sposób modułowy. W nazwie nie chodzi o samego Blaise Pascala a o słynny Trójkąt Pascala który jest rodzajem piramidy liczbowej. To właśnie modułowość przesądza o uniwersalności tego języka. Poza tym daje się odczuć pewien stopień podobieństwa bloków programu, coś na wzór fraktala. To już nie jest programowanie. To wznoszenie konstrukcji ze słów kluczowych, identyfikatorów i bloków procedur. Dodam że w Pascalu powstawały nie tylko programy użytkowe (np interfejs środowiska i edytora Turbo Pascala został skompilowany w całości w Turbo Pascalu) ale nawet pewien system operacyjny, nie pamiętam nazwy. Natomiast walory edukacyjne oparte są na przystępności - autor upodobnił ten język do mówionego języka angielskiego poprzez użycie słów kluczowych i konstrukcji opartych o zdanie w tym języku. Dzięki temu Pascal jest bardzo logiczny, intuicyjny, wręcz oczywisty i jak najbardziej przystępny nawet dla osoby która w życiu nie widziała na oczy kodu programu. Pozwala to na skupienie się nad samą implementacją algorytmu bez zbytecznego wnikania w szczegóły składni czy użyte operatory (apropos, w C operatory to kompletna porażka, bardzo łatwo walnąć babola i potem go szukać godzinami). Co wpłynęło na takie podejście do nowo tworzonego języka? Wcześniejsze, dość popularne ale też ograniczone do konkretnych dziedzin języki wysokiego poziomu (COBOL - biznes i bankowość, FORTRAN - zastosowania naukowe i inżynierskie, ALGOL - w przeznaczeniu uniwersalny ale posiadający wiele wad) wpływały na powstawanie w programach ukrytych i często bardzo trudnych do usunięcia błędów. To pochłaniało dużo czasu i pracy programistów. Konieczny więc był zupełnie nowy język programowania i kompletnie nowe podejście do stylu programowania by tworzyć programy bardzo czytelne, bardzo strukturalne i niemal od razu bezbłędne. Tak powstał Pascal i mówienie o rygorystycznej kontroli typów jako o wadzie jest kompletnym nieporozumieniem. "A to i to w C/C++ ja mogłem" to znaczy że źle cię nauczono i to znaczy też że nie znasz ani nie doceniasz Pascala bo w Pascalu też to możesz tylko świadomie musisz użyć pewnych konstrukcji a nie sztuczek znanych z C. Z przenośnością też związanych jest kilka mitów, pokutuje m.in przeświadczenie o absolutnej przenośności C i jednoczesnej nieprzenośności Pascala. Oba stwierdzenia to bujda na resorach. Obecnie Pascal (od kilku ładnych lat) jest bardziej przenośny niż C. Jak to możliwe? Ano tak się składa że Object Pascal użyty w Delphi (pod Windąs) jest niemal identyczny jak Object Pascal używany w Kylix (pod Linux). (więcej mi się pisać nie chce a wam zapewne też czytać :-) pzdr)
- Pomyślałbym o zweryfikowaniu twierdzenia, czy nadal Pascal jest popularny - w sensie jak często używany. Powstaje coraz więcej nowych języków programowania, są nowe trendy itp. Przeszukując serwisy z projektami o otwartym kodzie programu (np. github), można zauważyć, że najprawdopodobniej (nie liczyłem każdego projektu) w Pascalu jest pisana ich mniejszość. Na wiki w artykułach związanych z algorytmami/ programowaniem jest dużo przykładów w Pascalu. Młodszym pokoleniom programistów takie przykłady mogą na niewiele się zdać, bo znają inne, nowsze języki. Nauka języka dla paru przykładów? Jak ktoś chce, to OK, ale wtedy warto dodać jakiś odnośnik do informacji o Pascalu. NullPointerException (dyskusja) 10:13, 18 kwi 2014 (CEST)
- Na pewno jest dużo mniej popularny niż C, C++, Java i wiele innych pochodnych. Obecnie "żyją" praktycznie tylko kompilatory/środowiska Free Pascal (i Lazarus), gpc oraz RAD Studio. Do kompilacji w kodu C posiadamy wiele "żywych" kompilatorów pod różne platformy. Co będzie gdy projekt Free Pascal / Lazarus i RAD Studio zostaną porzucone? Stąd wnioskuję, że nie jest to język popularny, dodatkowo został już obecnie mocno zmodyfikowany. Nie posiada numeracji standardu tak jak jest w przypadku C++.
Nazewnictwo
[edytuj kod]Zamiast nazw funkcji typu "pisz" należy użyć wersji angielskich. Mimo, że języki programowania pozwalają nadać prawie każdą nazwę zmiennej, funkcji etc., które nie zawierają znaków diakrytycznych, należy w celu zachowania przenośności kodu między zespołami wielojęzykowymi od początku przyzwyczajać programistów do używania języka angielskiego do nazywania obiektów, typów, zmiennych, klas funkcji itp. Bez tego kod napisany przez programistę może być ciężki w utrzymaniu. Nie ma też nieporozumień związanych z brakiem polskich znaków i przez to wieloznacznością nazw (rzadko, ale się zdarza). Dawajmy więc dobry przykład. Szablonu nie wstawiam do artykułu, ponieważ nie wiem jakiego użyć. Dopracować Styl?
W przykładach brak obsługi wyjątków
[edytuj kod]Przykłady które zamieszczone są w artykule posiadają błędy takie jak:
- nieprzewidzenie wywołania funkcji fibonacci rekurencyjnej z zerem lub wartością ujemną (poprawione)
- przykład funkcji i programu fibonacci oraz silnia nie przewiduje przepełnienia rezultatu funkcji - do rozważenia zastosowanie większego typu wynikowego (np. extended) lub ograniczenie argumentu wejściowego i napisanie w komentarzu w kodzie dlaczego.
Jeżeli programista wcześnie nie nauczy się analizy przypadków wywołania funkcji przez siebie napisanej i obsługi wyjątków - będziemy mieli coraz więcej programów napisanych w sposób nieprzemyślany, co prowadzić będzie do większej ilości m.in. luk bezpieczeństwa. Pamiętajmy, że zabezpieczenia, które my dziś stosujemy (TLS/1.2, TLS/1.3, który będzie niedługo oprogramowywany) też piszą programiści. We wspólnym interesie jest więc dbać o jakość lekcji/przykładów na wikipedii.
Artykuł od 6 lat nie posiada źródeł i nosi zmamiona Pracy własnej. Brakuje źródeł do:
- oficjalnie najprostszego programu - oficjalnie według kogo? Prostszy jest np. "Begin End."
- brakuje źródeł do podanych przykładów programów. Przypominam, że zgodnie z zasadami, że Wikipedia jest encyklopedią i wymagana jest bezwzględnie weryfikowalność, tak aby każdy mógł sprawdzić informacje w niej zawarte. Obowiązuje zakaz pracy własnej, zaś przedstawione tu programy posiadają jej znamiona. Do przedstawienia swojej pracy twórczej służą siostrzane projekty wiki, toteż przykłady tu zawarte powinny się tam znaleźć. Opiekuna projektu @Wikipedysta:Stok i innych redaktorów uprasza się o dostosowanie do panujących tu zasad.
(Wątek założony 2016-12-21T20:23:22 przez IP 46.112.131- dodał tę informację Ency (replika?) 13:40, 26 gru 2016 (CET))
- Zarzut o tw ze względu na przykłady programów - też zaanonsowany na stronie "Zgłoś błąd" - to ewidentne prowokowanie (aby nie używać innego, bardziej adekwatnego określenia). Nie stanowią tw informacje trywialne czy weryfikowalne w prosty sposób, jak np. to że Słońce wschodzi na wschodzie (wystarczy dobry wzrok, którym dysponuje absolutna większość ludzkości). Co do przykładów prostych programów, to w dobie powszechnej nauki informatyki począwszy od klasy I szkoły podstawowej nie stanowi problemu trywialne zainstalowanie, również w trywialnym i używanym przez absolutna większość ludzkości systemie Windows, kompilatora danego języka i sprawdzenie czy program działa. Sądzę, że warto zamiast prowokowania na W. zająć się innymi bardziej pożytecznymi rzeczami, na W. czy poza nią. Z uszanowaniem, Ency (replika?) 13:40, 26 gru 2016 (CET)
- @Ency Fajnie więc, że:
- za tym artykułem: ściągnięcie Free pascala, zainstalowanie go, wpisanie kodu i uruchomienie + sprawdzenie za pomocą oka (niezwiązane z oceną jakości źródeł - za WP:WER tylko takie sprawdzenie można robić - praca ze źródłami) jest dopuszczalne.
- niedopuszczalne jest podanie informacji o wstecznych przekazach w "Proletaryat - jak długo", mimo, że wystarczy ściągnąć audacity, pobrać plik z internetu, użyć funkcji "odwróć w czasie/reverse" i posłuchać za pomocą ucha, które ma prawie każdy.
- To jest po prostu ABSURD.
- <sarkazm>Dziękuję za zachęcenie do edycji tej encyklopedii</sarkazm>
- Szczegóły w dyskusjacgh tego i tamtego artykułu.
- Kwestia chęci do udziału w redagowaniu W. to sprawa zdecydowanie szersza niż jednostkowy wpis jednej konkretnej osoby, więc sarkazm jest chybiony. Mnie osobiście nikt nie zachęcał ani zniechęcał. Sprawy hasła Proletaryat nie znam, nie wiem o co chodzi i nie interesuje mnie to, ponadto nie ma to związku z daną sprawą. Ency (replika?) 18:50, 26 gru 2016 (CET)
- @J.Dygas A Ty co na to powiesz? Jakie są zasady? Czy to co jest napisane na WP:WER, cyli zarówno własne przykłady nieuźródłowione (w tym te z pascala, jak również o przekazach wstecznych zostają czy obydwa wylatują? Obydwa są tak samo trywialne.
- @Ency Fajnie więc, że:









