Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

PASCAL w środowisku Windows - jak to działa?

10 Kwi 2011 16:38 2177 11
  • Poziom 17  
    Witam,

    problem o którym piszę wydawać się może banalny, ale jakoś nie umiem go rozwikłać przy użyciu google. Proszę się nie śmiać, dla mnie to sprawa magisterki.

    Do badań w mojej mgr wykorzystuję program, który został napisany w PASCALU. Błagam, nie pytajcie dlaczego wybrałem ten język... Badania są już w toku a mi bardzo, ale to bardzo zaczyna przeszkadzać tryb pracy programu po skompilowaniu.

    Jakimkolwiek znanym narzędziem bym tego nie kompilował, to wychodzi w efekcie programik DOS'owski, który żre procesor, trudno odpalić równolegle kilka takich, a obciążenie komputera jest dramatyczne.

    Anyway - jak mógłbym skompilować, lub we w miarę prosty sposób przerobić kod, aby w efekcie dał coś "okienkowego", czyli wykorzystującego potencjał komputera w lepszy sposób, bardziej kompatybilny z WIN etc.? Najbardziej mnie interesuje możliwość uruchomienia kilku programów na jednej maszynie bez konieczności przerwania pracy na niej, bo procesor nie wyrabia...

    Dodam, że złożoność obliczeniowa kodu nie jest duża i nawet nie mam się co skupiać na doskonaleniu kodu.

    Dziękuję za każdą radę i wskazówkę.
    Pozdrawiam
  • Pomocny post
    Poziom 35  
    Odpowiedź brzmi: Borland Delphi.
    Ewentualnie odpowiedź nr 2 brzmi: Lazarus

    Obydwa bardzo podobne, pierwszy płatny ale bywają niektóre wersje darmowe, drugi całkowicie darmowy.

    Programowanie pod dos'em ma to do siebie że z wielozadaniowością ma niewiele wspólnego, skorzystaj z linuksa albo windows'a.
  • Poziom 17  
    No dobrze, rozumiem, że kompilator Delphi - które z tego co wygóglałem jest w pewnym sensie naturalną ewolucją kompilatora Turbo Pascala. Rozumiem, że skompilowany element kodu (bądź cały program) przenosi go ze środowiska DOS do środowiska Win, czyli łatwiej o pracę wielozadaniową, tak?

    Czy w związku z tym będą np. straty w wydajności poszczególnego programu, albo zwiększenie jego objętości po kompilacji? Czy będzie też tak, że będę musiał przekładać poprzedni kod na nowy, poprawiając jego elementy tak aby kompilator je przyjął i wygenerował "okienko"?
  • Poziom 31  
    A FreePascal? Z tego, co wiem, kompiluje normalne exeki Win32. Zamiast programu pod DOS powinieneś uzyskać program też konsolowy, ale pod Win32.
    Co do przenośności, to zależy od tego, co i jak już zrobiłeś. Jeśli chcesz windowsowe okienka, to samo się to i tak nie zrobi; w takim wypadku może lepiej będzie jednak w Turbo Delphi.
  • Pomocny post
    Poziom 35  
    Skoro autor chce coś okienkowego zrobić to najłatwiej mu będzie wspomnianym Delphi lub Lazarusem. Wystarczy uruchomić, dodać myszką jakiś przycisk czy coś, dwa razy na tym kliknąć i wpisać kod. Łatwiej nie będzie.
    Lazarus właśnie korzysta z Free Pascala.
  • Pomocny post
    Poziom 42  
    FP skompiluje program jako 32 bitowy program konsolowy dla Windows. Praktycznie nie będą potrzebne żadne zmiany kodu, lub bardzo niewielkie. Wykorzystanie Delphi da lepsze efekty, lecz może wymagać niewielkich modyfikacji kodu.

    Plik wynikowy za każdym razem będzie większy ze wzgledu na sam fakt, że program jest 32-bitowy. Tak samo zajmie więcej w pamieci. Co do wydajności, to natywny tryb pracy 32-bitowy będzie szybszy nawet, jeśli będzie potrzeba przetwarzania większych ilości danych. Więc zwiększenie pliku exe oraz rozmiaru danych nie pociągnie za sobą spadku wydajności.

    Jeśli chcesz okienka, to już wybór tylko na Delphi byłby zalecany lub Lazarus. Jednak tutaj licz sie z bardzo dużym przyrostem rozmiaru pliku exe.
  • Poziom 17  
    W sumie nie tyle mi zależy na rozmiarach programu, co na możliwości odpalenia kilku takich programów jednocześnie. Konkretnie wielozadaniowość mnie tu przekonuje. Rozumiem, że nawet program konsolowy staje się poniekąd 32 bitowy i przewidziane jest rozdysponowanie zasobów procesora pomiędzy takie programy?

    Kiedy kompiluję .exe w dosowskim kompilatorze, dostaję dosowski program konsolowy. W efekcie tego odpalenie pojedynczego egzemplarza "pożera" cały zasób procesora i odpalanie następnych mija się z celem. Rozumiem, że Delphi ten problem rozwiązuje.

    Bardzo dziękuję za pomoc.

    Dodano po 48 [minuty]:

    Dodam jeszcze pytanie - ponieważ do zainstalowania Delphi potrzebuje całej masy Framwork i .NET, to czy skompilowany program będzie ich wymagał?
  • Pomocny post
    Poziom 32  
    Fajnie że kolega wybrał delphi borlana bo powiem tak że używam czasami lazarusa i gdyby nie doświadczenia z borlanda pewnych problemów bym nie rozwiązał co do lazarusa to jest wieloplatwormowy w przeciwieństwie do borlanda i full darmowy także do komercji
  • Poziom 17  
    Po jakimś czasie pracy z Delphi widzę same plusy przerzucenia się.

    Przypomina on Turbo Pascala z bibliotekami Turbo Vision. Obiekty i klasy działają tak samo, a dużo łatwiej się tworzy dla środowiska Windows w trybie obiektowego, graficznego programowania.

    Dziękuję za skierowanie mnie w stronę Delphi.

    Pozdrawiam!
  • Pomocny post
    Poziom 11  
    To co "pożera procesor" z programów DOSowych w Pascalu to procedura DELAY i inne pętle opóźniające.

    Sprawdź czy w tym programie są tego typu procedury lub pętle i trzeba je usunąć lub zastąpić windowsowymi metodami oczekiwania.


    Jeżeli chcesz mieć "żyjące" okienko i coś co wykonuje się długo, to możesz:
    1. rozbić go na mniejsze elementy i uruchamiać je w kolejnych cyklach
    2. dodać do tego kodu w długich pętlach przetwarzanie komunikatów Windowsa,
    3. zrobić z tego drugi wątek w programie, jak będziesz miał wprawę, to możesz uruchomić kilka wątków w jednym programie.

    Możesz też kilka razy uruchomić ten sam program
  • Poziom 17  
    W zasadzie dłuuugo siedziałem w Pascalu i przyznaję szczerze, że gdyby nie biblioteki Turbo Vison które wcześniej za sprawą książek Andrzeja Marciniaka (np. Andrzej Marciniak TURBO PASCAL 7.0 Z ELEMENTAMI PROGRAMOWANIA. CZĘŚĆ II: BIBLIOTEKA TURBO VISION 2.0) miałbym problem z przeniesieniem się w środowisko ściśle windowsowo-graficzne.

    Radzę się z nimi zapoznać, jeśli ktoś się będzie przesiadał, bo pozwoliły mi na gładkie przejście. Dużo się nauczyłem o obiektach, klasach etc. A przejście do wizualnego środowiska wymaga tej wiedzy.

    Co ciekawe - Delphi pozwala na całkowicie konsolowe działanie programu, ale - prawda jest taka, że z jakichś niewyjaśnionych dla mnie przyczyn konsolowy program skompilowany pod Win-Delphi działa mi szybciej niż skompilowany pod starym Turbo Pascalem. Działanie kodu nie odbiega prawie nigdy od starych pomysłów, przenoszenie się w tryb graficzny wyszło mi naprawdę na zdrowie.

    Delphi zresztą jest naprawdę świetnie rozbudowanym narzędziem, które pozwala na proste utworzenie form okienkowych. Oczywiście trzeba czytać, pytać etc, ale opłaca się.

    Temat możemy chyba zamknąć. Bardzo dziękuję wszystkim za informacje.