Overview of Free Pascal and Lazarus/fi

From Free Pascal wiki

Deutsch (de) English (en) español (es) suomi (fi) français (fr) magyar (hu) Bahasa Indonesia (id) italiano (it) 日本語 (ja) 한국어 (ko) polski (pl) português (pt) русский (ru) slovenčina (sk) 中文(中国大陆)‎ (zh_CN) 中文(台灣)‎ (zh_TW)

Free Pascal (FPC) on avoimen lähdekoodin Pascal kääntäjä, jolla on kaksi merkittävää ominaisuutta: korkea Delphi yhteensopivuus ja saatavuus useille eri alustoille, kuten Windows, Mac OS X ja Linux. Free Pascalin yhteensopivuus Delphin kanssa ei sisällä vain samaa Delphin käyttämää Object Pascal-ohjelmointikielen tukea, vaan myös monille samojen tehokkaiden rutiinien ja luokkien kirjastoille, joita Delphi on oikeutetusti tunnettu. Tämä sisältää tuttuja yksiköitä, kuten System, SysUtils, StrUtils, DateUtils, Classes, Variants, Math, IniFiles ja Registry, jotka sisältyvät Free Pascaliin kaikilla tuetuilla alustoilla. Free Pascal sisältää myös Windows-, ShellAPI-, BaseUnix-, Unix- ja DynLib-yksiköitä käyttöjärjestelmän ominaisuuksien käyttämiseen. Nämä kymmenkunta käännösyksikköä muodostavat ytimen, jota yleensä kutsutaan Free Pascal run-time-kirjastoksi (RTL).

Lazarus on avoimen lähdekoodin kehityssysteemi, joka perustuu Free Pascal-kääntäjään lisäämällä integroidun kehitysympäristön (IDE), joka sisältää syntaksia korostavan koodieditorin ja visuaalisen muotoilijan sekä komponenttikirjaston, joka on erittäin yhteensopiva Delphin Visual Component Kirjasto (VCL) kanssa. Lazarus Component Library (LCL) sisältää ekvivalentteja monille tutuille VCL-kontrolleille, kuten lomakkeille, painikkeille, tekstilaatikoille ja niin edelleen, joita käytetään sellaisten sovellusten luomiseen, joilla on graafinen käyttöliittymä (GUI).

Sekä Free Pascal että Lazarus ovat kirjoitettu Pascalissa. Täydellinen lähdekoodi on saatavilla paitsi Free Pascal-kääntäjälle ja Lazarus IDE: lle, mutta myös kaikille yksiköille, jotka muodostavat Free Pascal RTL: n ja Lazarus LCL: n.

Kuten Delphi, Free Pascal ja Lazarus ovat sekä yleiskäyttöisiä ohjelmointityökaluja, joten voit kehittää monenlaisia ​​ohjelmia niiden kanssa, mukaan lukien seuraavat:

Komentorivisovellukset

Komentorivi- tai konsoliohjelmilla ei ole käyttöliittymää. Sen sijaan ne käynnistetään yleensä konsolista, lukevat niiden syötteet konsolista ja kirjoittavat lähdön konsoliin. Windowsissa konsolia kutsutaan yleensä komentokehotteeksi. OS X: ssä ja Linuxissa konsolia kutsutaan pääteikkunaksi. Konsoliohjelmissa on esimerkiksi pieniä apuohjelmia, kuten Windows FC (tiedostojen vertailu) -ohjelma tai Unix-cd- ja cp-komennot. Konsoliohjelmat voivat olla myös tehokkaita numeroiden ryömintää, mallinnusta tai tietojenkäsittelyohjelmia, jotka eivät tarvitse fiktiivistä GUI: ta, koska ne käynnistetään muiden ohjelmien tai erätiedostojen (tai unix / linux-komentojen) avulla. Free Pascal-kääntäjä ja siihen sisältyvät apuohjelmat ovat kaikki konsoliohjelmia, eli niitä voidaan käyttää konsolista, erätiedostosta tai Lazarus IDE: stä.

Voidaan luoda konsoliohjelma, jossa on vain tekstieditori ja Free Pascal-kääntäjä. Ei tarvitse käyttää Lazarusia konsoliohjelmien kehittämiseen. Jos kuitenkin halutaan työskennellä integroidussa ympäristössä, voidaan käyttää Lazarusta luomaan projektin konsoliohjelmalle, muokkaamaan ja kääntämään koodin Lazarus IDE: ssä.


Dynaamisesti ladattavat kirjastot

Dynaamisesti ladattava kirjasto on yleensä kokoelma käännettyjä funktioita, joita voidaan kutsua muilla ohjelmilla. Kuten nimestä voi päätellä, kirjastoa ei ole yhdistetty suoritettavaan tiedostoon käännösaikana, vaan ladataan ajon aikana. Windowsissa kirjastotiedostossa on .dll-laajennus (dynaaminen linkkikirjasto tai DLL). OS X: ssä kirjastotiedostossa on .dylib-laajennus (dynaaminen jaettu kirjasto). Linuxissa kirjastotiedostossa on .so-laajennus (jaetun objektikirjasto). Dynaamisesti ladattavia kirjastoja käytetään tyypillisesti muiden ohjelmien lisäosien kehittämiseen, sellaisten kirjastojen kehittämiseen, joita voidaan kutsua muilla kielillä, kuten C- ja C ++: lla, kirjoitetuilla ohjelmilla tai suurten projektien jakamiseen paloiksi, jotta hankkeen kehittäjät eivät askella toistensa varpaille. Itse Windows koostuu satoista DLL-tiedostoista, kuten monet muut suuret sovellukset, esim OpenOffice.org.

Konsoliohjelmien tapaan tarvitaan vain tekstieditori ja Free Pascal-kääntäjä kirjaston kehittämiseksi, vaikka kirjastot voidaan myös luoda Lazarus-projektina ja kehittää kirjasto Lazarus IDE:llä.

Windowsissa DLL:llä on ei-toivottu maine, koska se on liian monimutkainen ja epävakaa. Tämä liittyy enemmän tapaan, jolla ne ovat joskus asennettuja kuin itse DLL:n kanssa. Itse asiassa, koska tietojen siirtäminen DLL:llä ja niistä on yleensä suoritettu tavallisilla, yksinkertaisilla tietotyypeillä (eikä kielispesifisillä objekteilla tai rakenteilla), tämä vaatimus pakottaa ohjelmoijat kiinnittämään enemmän huomiota siihen, mitä he tekevät. Jos se tehdään oikein, tämä voi johtaa parempiin ja vakaampiin ohjelmiin. GUI-sovellukset

Useimmat päivittäin käyttämämme ohjelmat ovat GUI-sovelluksia, kuten tekstinkäsittelyohjelmia, verkkoselaimia, taulukkolaskentaohjelmia, jopa monia kehitystyökaluja. Lazarus ja Delphi ovat molemmat hyviä esimerkkejä täyden valikoiman GUI-sovelluksista. Kun kehitetään GUI-sovellusta Lazaruksen kanssa, ohjelmoidaan paitsi Pascal-koodia, myös suunnitellaan lomakkeita, jotka sisältävät visuaalisia kontrolleita, kuten painikkeita ja luetteloruutuja. Delphin tavoin Lazaruksen muotoilu tehdään visuaalisesti. Ohjausominaisuudet voidaan määrittää IDE:ssä tai koodissa.

Koska LCL-kontrollit ovat käytettävissä kaikilla tuetuilla alustoilla, yhdellä alustalla kehitetty GUI-sovellus (esimerkiksi Windows) voidaan koota toiselle alustalle (esimerkiksi OS X tai Linux) ilman muutoksia lomakkeen suunnittelu tai lomakkeen koodi tiedostoon.

Lazarus-arkkitehtuuri

Lazaruksella kirjoitetut ohjelmat seuraavat arkkitehtuuria:


Lazarus App Architecture.png

Ja LCL itse seuraa seuraavaa arkkitehtuuria:

LCL Architecture.png

LCL:llä on riippumattomia käännösyksiköitä, kuten säätimiä, lomakkeita, painikkeita ja taulukoita. Ne eivät voi työskennellä yksin. Ne ovat abstrakteja ja tarvitsevat taustan. LCL tarjoaa monia erilaisia LCL-rajapintoja, jotka kommunikoivat taustasysteemillä tai "widgetsetillä" (win32, gtk, qt, carbon, cocoa, ...). Taustasysteemi on koottu yksinkertaisesti käyttämällä pakettia LCL ja lisäämällä yksikön "rajapinnat" yhdeksi ensimmäisistä käännösyksiköistä ohjelmaan. Kun luodaan sovellus Lazarus IDE:n kanssa, se tehdään automaattisesti. Taustasysteemi valitaan käännösaikana eikä sitä voida muuttaa ajonaikana.


Katso myös