Lietuviška Free Pascal programavimo sistema

Download Report

Transcript Lietuviška Free Pascal programavimo sistema

Free Pascal pristatymas
Vilniaus Universitetas
Matematikos ir informatikos institutas
© Rimgaudas Laucius
Seminaro turinys
• Kas tai yra Free Pascal?
• Kodėl reikėjo keisti Turbo Pascal?
• Kokios yra gerosios Free Pascal savybės?
• Kuo skiriasi Turbo Pascal ir Free Pascal
kalbos?
• Kas tai yra FPS? Kokią versiją naudoti?
• Kokie ateities planai?
Free Pascal
• Nemokamas, laisvai platinamas, atvirojo
teksto
• Veikia daugumoje OS
• Kalba suderinama su Turbo Pascal ir Delphi
dialektais, be to turi kitų naudingų išplėtimų
• Plačiai naudojamas visame pasaulyje
Free Pascal istorija
• 2000 m. išleista 1.0 versija
• 2002 m. išleista 1.0.6 versija (vėliau
panaudota FPS 0.6.4)
• 2005 m. išleista 2.0 versija
• Pradinis autorius: Florian Paul Klämpfl
• Šiuo metu Free Pascal tobulina 8 autoriai iš
įvairių šalių
Kodėl reikėjo keisti Turbo
Pascal
Turbo Pascal paseno
• Palaikymas nutrūko nuo 1992 m.
• Nepritaikytas šiuolaikiniams kompiuteriams
ir operacinėms sistemoms
• Nėra lokalizuotas ir to neįmanoma padaryti
Gerosios Free Pascal savybės
Pascal kalbos savybės
• Universali
• Turi nedidelę gerai subalansuotą duomenų
tipų ir jų konstravimo priemonių, bei
valdymo struktūrų aibę
• Pascal kalba parašyti algoritmai yra aiškūs,
lengvai skaitomi ir suprantami
Išnaudoja šiuolaikinių procesorių
teikiamas galimybes
• Free Pascal išnaudoja 32 arba 64 bitų
architektūrą, kurios dėka duomenų, o taip pat
ir pačios programos dydis beveik neribojamas
(Turbo Pascal riboja tai 64 KB).
Turi platesnių rėžių skaitinius tipus
• Free Pascal 64-bitų sveikasis tipas int64 ir
realusis tipas Extended turintis rėžius 1.9104951..1.1104932, bei 19-20 reikšminių
skaitmenų leidžia atlikti tikslesnius
skaičiavimus su dideliais skaičiais
Ilgos eilutės
• Free Pascal turi ilgų string eilučių tipą,
kurių ilgis beveik neribojamas. Turbo Pascal
turi tik trumpas eilutes kurios negali būti
ilgesnės nei 255 simboliai
Operatorių daugiareikšmiškumas
• Ši savybė leidžia operatoriams apibrėžti
naujas operacijas su naudotojo sukurtais
duomenų tipais
Programinių išteklių bibliotekos
• Free Pascal pateikiamas su programinių
išteklių bibliotekomis kurios palengvina
programų rašymą ir įvairių užduočių
sprendimą
• Operacinių sistemų API
• Objektų bibliotekas
Kuo skiriasi Free Pascal ir Turbo
Pascal kalbos
Suderinamumo veiksenos
• The {$MODE X} sets the compatibility mode of the compiler.
This is equivalent to setting one of the command-line options So, -Sd, -Sp or -S2. it has the following arguments (X):
• Default. This reverts back to the mode that was set on the
command-line.
• Delphi. All object-pascal extensions are enabled. This is
the same as the command-line option -Sd.
• TP. Object pascal extensions are disabled, except
ansistrings, which remain valid. This is the same as the
command-line option -So.
• FPC. This is the default, if no command-line switch is
supplied.
• OBJFPC. This is the same as the -S2 command-line
option.
• GPC. This is the same as the -Sp command-line option.
požymis \ veiksena
klasės, pakraunamas OBJPAS
modulis
funkcijų polimorfizmas
operatorių polimorfizmas
eksportuojamieji kintamieji
(cvar modifikatorius)
leidžiami komentarai
komentaruose
pchar tipo eilutės
automatiškai konvertuojamos į
string tipo
procedūros tipo kintamajam
reikšmė priskiriama kaip
funkcijos reikšmei gražinti
galima naudoti „Result“
kintamajį
FPC
TP
Delphi
GPC
OBJFPC
-
-
+
-
+
+
+
+
-
-
-
+
+
+
+
-
-
-
+
+
-
-
-
+
procedūros
adresas
procedūra
procedūra
procedūros
adresas
-
-
+
-
procedūros
adresas
+
Pagrindiniai veiksenų skirtumai
• Kai procedūros tipo kintamajam yra priskiriama
reikšmė, gali reikti arba nereikti „@“ operatoriaus.
• Integer tipas gali būti perdeklaruotas kaip longint
• String tipas gali reikšti ilgas arba trumpas eilutes
Ilgos ir trumpos eilutės
• Priklauso nuo suderinamumo veiksenos arba
direktyvos {$H}.
• Realizacija
var
s1: string[6];
s2: string;
s3: pchar;
begin
s1:= 'Labas';
s2:= 'Labas';
s3:= 'Labas';
Darbas su dinamine atmintimi
• Net ir tekstinės veiksenos Free Pascal programos yra
Windows’inės
• Windows OS atidžiau seka neleistinus kreipinius į atmintį nei
DOS
• Atlikus neleistiną kreipinį gaunami pranešimai „216 General
Protection Fault“
• Free Pascal programose neveiks DOS stiliaus atminties
valdymo funkcijos pvz.:
•nebepalaikomi FAR ir NEAR modifikatoriai.
•nebenaudojamas modulis „Overlay“.
•nebenaudojama funkcija Seg().
•pasikeitė funkcijos Ofs() gražinamos reikšmės tipas.
•nebenaudojamos funkcijos Cseg(), Dseg().
•pasikeitė funkcijos Ptr parametrai.
Direktyvų skirtumai
•Ignoruojama „$N“ direktyva
•Ignoruojama „$G“ direktyva
•Ignoruojama „$B“ direktyva
Pvz.:
If False and Bofu then
Ignoruojama „$F“ direktyva
•Ignoruojamos „$A“, „$L“, „$I“
Free Pascal direktyvos
• $R or $RANGECHECKS : Range checking
• $I or $IOCHECKS : Input/Output checking
• $Q or $OVERFLOWCHECKS: Overflow checking
• $S : Stack checking
Variantinis sakinys
• Free Paskalyje variantiniame sakinyje Case negali kirstis
žymių aibės.
Case i of
3 : Sakinys1;
1..5 :Sakinys2;
end;
Standartiniai moduliai
• Problemų sukelia Graph, Crt moduliai.
FPS
FPS features
• FPS has graphical user interface. It is
consistent with other Windows programs and
easy to acquire for new users, who have
experience in working with Windows
programs.
FPS features
• FPS is simple and easy to learn to use it. At
the same time it has all main functionality. It
has step-by-step debugging, watching of
expressions, and watching of expressions’
values change, assignment, reading
possibilities.
FPS features
• FPS is internationalized. So it can be easily
translated into any other language.
FPS features
• FPS developing continues and it’s users can
find support at FPS web page or mailing list
[3]. FPS users can contribute to its
development with their suggestions.
• Web: http://ims.mii.lt/fps
•E-mail: [email protected]
Duomenų kodavimas
• Windows kodų lentelė 1257
• DOS kodų lentelė 775
FPS versijos
• 0.6.4
• kitos
FPS ateities planai
• Daugiakalbiškumo palaikymas
• FPC 2.1 versija
• FPC žinyno htmlhelp formatu parengimas ir
vertimas
• Priemonės pagelbėjančios renkant
programos tekstė
• Linux palaikymas
Tinklalapis
• http://ims.mii.lt/fps
Klausimai?
Ačiū už dėmesį.
El. Paštas: [email protected]