"Free Pascal" sayfasının sürümleri arasındaki fark

değişiklik özeti yok
{{sil|M8-Büyük oranda Türkçe olmayan içerikle oluşturulmuş madde}}
{{Başka dilden çevrilmekte}}
{{Programlama dili bilgi kutusu
| ad = Free Pascal
| geliştiricisi = Florian Klämpfl ve [[Gönüllü]]ler
| en_son_sürüm = 2.6.0
| en_son_sürüm_tarihi = {{release1 dateOcak and age|2012|01|01}}
| en_son_önizleme_sürümü =
| en_son_önizleme_sürümü_tarihi =
| lisansı = [[GNU General Public License]]
| dosya_uzantısı =
| websitesi = {{urlwebsitesi|http://www.freepascal.org}}
| ailesi =
'''Free Pascal''' derleyici (Kısaca '''FPC''', ayrıca '''FPK Pascal''' olarak da bilinir.<ref>'''FPK Pascal''', adı projeyi başlatan [[Florian Paul Klämpfl]]'ın baş harflerinden gelmektedir. Projenin adı 1997 yılı sonunda FPC olarak değiştirilmiştir</ref>) [[özgür yazılım|özgür]] bir [[Pascal (programlama dili)|Pascal]] ve [[Object Pascal]] [[derleyici|derleyicisidir]].
Bunlara ek olarak kendi Object Pascal lehçesini de barındırır. Free Pascal supports, değişen oranlarda [[Turbo Pascal]], [[Delphi programlama dili|Delphi]] ve bazı eski [[Macintosh]] derleyicilerindeki diyalektlerilehçeleri de destekler. DiyalektlerLehçeler ünite bazında seçilebilir ve tek program birden fazla diyalektlehçe kullanılarak oluşturulabilir.
Bir ''[[kere yaz her yerde derle]]'' çabasının bir üyesi olarak Free Pascal, bir çok [[CPU mimarisi|mimari]] ve [[işletim sistemi]] için derleme yapabilmektedir Bunların bir listesi için [[#Desteklenen Platformlar|Desteklenen Platformlar]] bölümüne bakınız. Free Pascal'ın mükemmel bir [[assembly dili]] desteği vardır ve çeşitli assembly lehçelerini içsel olarak destekler.
A member of the ''[[write once, compile anywhere]]'' campaign, Free Pascal is available for many [[CPU architecture|architectures]] and [[operating system]]s (see [[#Targets|Targets]]). It has an excellent support for integration of [[assembly language]], and supports internal assembler in a number of dialects.
Free Pascal ile [[cross-platform|Çoklu platform]] [[grafiksel|GUI]] uygulamalar geliştirmeye yarayan ayrı [[tümleşik geliştirme ortamı]] (IDE) projeleri mevcuttur. Bunlardan en önce çıkanı [[Lazarus (yazılım)|Lazarus]] [[tümleşik geliştirme ortamı]]'dır.
Separate projects exist to facilitate the development of [[cross-platform]] [[GUI|graphical]] applications, the most prominent one being the [[Lazarus (software)|Lazarus]] [[Integrated development environment|IDE]].
==Desteklenen Platformlar==
==Supported dialects==
Free Pascal adopted the ''de facto'' standard dialect of Pascal programmers, [[Borland]] Pascal and, later, Delphi. From version 2.0 on, the Delphi 7 compatibility has been continuously implemented or improved.
In fact, the project has a '''compilation mode''' concept, and the developers made it clear that they would incorporate working patches for the [[ANSI]]/[[ISO]] standardized dialects to create a standards-compliant mode.
A small effort has been made to support some of the [[Apple, Inc.|Apple]] Pascal syntax, to ease interfacing to [[Mac OS]] and [[Mac OS X]]. Since the Apple dialect implements some standard Pascal features that Turbo Pascal and Delphi omit, Free Pascal is a bit more ISO-compatible than these.
The 2.2.''x'' release series does not significantly change the dialect objectives beyond Delphi 7, instead they aim for closer compatibility. The project still lacks the Delphi functionality of compiler-supported exporting of classes from shared libraries, which is for example useful for Lazarus, which implements packages of components.
{{As of|2011}} several Delphi 2006-specific features have been added in the current development branch, and some of the starting work for the features new in Delphi 2009 (most notably the addition of the <code>UnicodeString</code> type) has been done. The development branch also features an “Objective-Pascal” extension for [[Objective-C]] ([[Cocoa (API)|Cocoa]]) interfacing.
The current trunk (2.7.1) version implements basic ISO Pascal mode, though many things such as <code>Get</code> and <code>Put</code> procedure and file buffer variable concept for file handling are still missing.
===The early years===
Free Pascal emerged when [[Borland]] made it clear that [[Borland Pascal]] development for MS-DOS would stop with version 7, to be replaced by a [[Microsoft Windows|Windows]]-only product (which became Delphi later on).
Student Florian Paul Klämpfl started developing his own compiler, written in the Turbo Pascal dialect, and produced [[32-bit]] code for the go32v1 [[DOS extender|extender]], which was used and developed by the [[DJGPP|DJGPP project]] at that time.
Originally, the compiler itself was a [[16-bit]] DOS executable compiled by [[Turbo Pascal]]. After two years, the compiler was able to [[Bootstrapping (compilers)|compile itself]] and became a 32-bit executable.
The initial 32-bit compiler was published on the [[Internet]], and the first contributors joined the project. Later a [[Linux]] port was made by Michael van Canneyt, five years before [[Kylix programming tool|Kylix]] became available.
The DOS port was adapted for use in [[OS/2]] using the [[EMX_(programming_environment)|EMX extender]] which made OS/2 the second supported compilation target - apart from support of Florian Klämpfl as the original author, Daniël Mantione contributed significantly to make this happen and provide the original port of the run-time library to OS/2 / EMX. The compiler improved gradually, and the [[MS-DOS]] version migrated to the go32v2 extender. This culminated in release 0.99.5, which was much more widely used than previous versions, and was the last release aiming only for Turbo Pascal compliance—later releases added a Delphi compatibility mode. This release was also ported to systems using a [[Motorola 68000 family|680x0]] processor.
With release 0.99.8 the [[Win32]] target was added, and a start was made with incorporating some Delphi features. Stabilizing for a non-beta release began, and version 1.0 was released in July 2000. The 1.0.''x'' series <!--and the bug-fix/stabilization releases that followed, last, 1.0.10 in July 2003--> was widely used, both as an enterprise and educational tool. For the 1.0.''x'' releases, the port to 68k CPU was redone, and the compiler produced stable code for a number of 68k [[Unix-like|Unix]] and [[AmigaOS]] operating systems.
===The second generation===
During the stabilization of what would become 1.0.''x'', and specially when porting to the [[Motorola]] 68k systems, it was clear that the design of the code generator was far too limited in many ways. The principal problems were that adding processors basically meant rewriting the code generator, and that the register allocation was based on the principle of always keeping three free registers between building blocks, which was inflexible and hard to maintain.
For these reasons, the 1.1.''x'' [[Branching (software)|branched]] from the 1.0.''x'' main branch in December 1999. At first, changes were mostly clean-ups and rewrite/design to all parts of the compiler, and then the code generator and register allocator were rewritten. As a bonus, remaining missing Delphi compatibility was added.
The work on 1.1.x continued slowly but steadily, and in late 2003 a working [[PowerPC]] port became available, followed by an [[ARM architecture|ARM]] port in summer 2004, a [[SPARC]] port in fall 2004, and an [[AMD64]] port&mdash;which made the compiler available for a 64-bit platform&mdash;in early 2004.
In November 2003 a first [[Beta testing|beta]] release of the 1.1.''x'' branch was packaged and numbered 1.9.0. These were quickly followed by versions 1.9.2 and 1.9.4; version 1.9.4 introduced Mac OS X support. The work continued with version 1.9.6 (January 2005), 1.9.8 (late February 2005), 2.0.0 (May 2005), 2.0.2 (December 2005), and 2.0.4 (August 2006).
===Consolidation: the 2.2.x release series===
In 2006 some of the major reworks planned for 2.2, such as the rewrite of the unit system, had not started, and it was decided to start stabilizing the already implemented features. <!-- This to allow a 2.2 release, and push the unimplemented features to a future 2.3 and 2.4 branch. (???) -->
Some of the motivations for this [[plan|roadmap]] change were the needs of the Lazarus project, particularly the internal linker, support for [[Win64]], [[Windows CE]], and Mac OS X on [[x86]], and related features like [[DWARF]]. After betas 2.1.2 and 2.1.4, version 2.2.0 was released in September 2007, followed by version 2.2.2 in August 2008 and version 2.2.4 in March 2009.
The 2.2.''x'' series vastly improved the [[ActiveX]]/[[Component Object Model|COM]], [[Interface (computer science)|interface]], and [[Object Linking and Embedding|OLE]] support, though bugs are still being found. The delegation to interface using the <code>implements</code> keyword is partially implemented, but was not complete {{As of|2011|3|lc=on}}.<ref>http://bugs.freepascal.org/view.php?id=8951</ref> Library support for ActiveX was also improved.
Another major highlight was the internal linker for Win32, Win64, and Windows CE, which much improves linking time and memory use, and makes the compile-link-run cycle in Lazarus much faster. The efficiency for smart-linking, or dead code elimination, has also been improved.
Minor new features are improved DWARF (2/3) debug format support, and optimizations such as [[tail recursion]], omission of unneeded [[stack frame]]s and register-based [[Common subexpression elimination|CSE optimization]]. A first implementation of [[Generic programming|generics]] support is also available, but only for exploration purposes.
==The 2.4.x release series==
The 2.4.x release series had a less clear set of goals than earlier releases. The unit system rewrite was postponed again, and the branch that became 2.4 was created to keep risky commits from 2.2 to stabilize it. Mostly these risky commits were more involved improvements to the new platforms, Mac [[PowerPC]] 64, Mac [[x86-64]], iPhone, and many fixes to the ARM and x86-64 architectures in general, as well as [[DWARF]].
Other compiler improvements included [[whole program optimization]] (WPO) and devirtualization and ARM [[EABI]] support.
Later, during the 2.2 cycle, a more [[Embarcadero Delphi|Delphi]]-like resource support (based on special sections in the binary instead of Pascal constants) was added; this feature, direly needed by Lazarus, became the main highlight of the branch.
Other more minor points were a [[memory management|memory manager]] that improved [[Dynamic memory allocation|heap]] manager performance in [[Thread (computer science)|threaded]] environments, small improvements in Delphi compatibility such as <code>OleVariant</code>, and improvements in [[interface (computer science)|interface]] [[delegation (programming)|delegation]].
Free Pascal 2.4.0 was released on January 1, 2010, followed by bug fix release 2.4.2 on November 13, 2010, containing support for <code>for..in</code> loops, and <code>sealed</code> and <code>abstract</code> classes, and other changes.<ref>See [http://wiki.freepascal.org/User_Changes_2.4.2].</ref>
==The 2.6.x release series==
In January 2012, Free Pascal 2.6 has been released. This first version from the 2.6 release series also supports [[Objective Pascal]] on Mac OS X and iOS targets and implements numerous small improvements and bug fixes.
==Trunk (2.7.x)==
The current [[Apache Subversion|SVN]] trunk, 2.7.x, will one day go gold as 2.8 or 3.0. Worked on subjects are support for ANSI string with codepages (as in D2009+), continuous work on [[generic programming|generics]], [[structured exception handling]] (SEH) on Windows targets, [[ARM]] hardfloat support and target (ARMHF), [[MIPS architecture|MIPS]] architecture, internal [[linker (computing)|linker]] for [[DOS]]/[[Go32v2]]. As well as [[NetBSD]] and [[OpenBSD]] (x86 and x86_64) support. A proof of concept internal linker for [[Executable and Linkable Format|ELF]] is available too.
{{Expand section|date=May 2010}}
{| class="wikitable" border="1"
==Free Pascal ile geliştirlmiş yazılımlar==
With the next major version (based on current trunk 2.7), Free Pascal will also support byte code generation for the [[Java Virtual Machine]]<ref>[http://wiki.freepascal.org/FPC_JVM freepascal wiki: FPC JVM]. Seen on August 23rd, 2011.</ref> and [[MIPS architecture|MIPS]].
*Free Pascal'ın kendisi [[Object Pascal]] ve [[assembly dili]] ile geliştirilmiştir ve kendisini derleyebilir.
==Integrated development environments (IDEs)==
*Lazarus: Grafiksel uygulamalar geliştirmek için Free Pascal’la bağlantılı, [[Embarcadero Delphi|Delphi]] benzeri hızlı geliştirme ortamı.
*[[Pixel Studio Pro]]: [[Photoshop]] benzeri fotoğraf düzenleme programı. Bu program tartışmasız Free Pascal ile geliştirilmiş en bilinen yazılımdır.
*[[Peazip]]: Açık kaynak dosya arşivleme yazılımı.
*[[Morfik]]: Morfik WebOS AppBuilder programı [[CGI]] ikilileri oluşturmak için Free Pascal derleyicisini kullanır.
*[[Hedgewars]]: Worms benzeri strateji oyunu.
*[[MyNotex]]: GNU/Linux için özgür bir not alma ve not yöneticisi programıdır.
==Ayrıca Bakınız==
Like most modern compilers, Free Pascal can be used with an [[integrated development environment]] (IDE).
===Free Pascal's Own Text Mode IDE===
Free Pascal has its own text-mode IDE resembling Turbo Pascal's IDE. It's made using Free Vision framework, a Turbo Vision clone. Other than Turbo Pascal's IDE original features, it also added some features like code completion and multiple help files format support (HTML, [[Microsoft Compiled HTML Help|CHM]]). Instead of using command line tools, the IDE uses its own embedded compiler (the same source as the command line compiler) and debugger (using libgdb) to provide its functionalities.
{{Main|Lazarus (IDE)}}
Lazarus is the most popular IDE used by Free&nbsp;Pascal programmers. It provides a Delphi-like development experience and can be used to create [[console application|console]] and [[graphical user interface|graphical]] applications, [[Windows service|services]] / [[Daemon_(computer_software)|daemons]] and even [[Web_application|web applications]].
Lazarus provides a cross-platform user interface framework, called [[Lazarus (IDE)#Lazarus Component Library|Lazarus Component Library]] (LCL). Graphical applications created with LCL can be ported to another platform [[Write once, compile anywhere|with a recompilation]] or [[Cross_compiler|cross compilation]].
[http://www.msegui.org/ MSEide] is another Free&nbsp;Pascal-based IDE that is aimed at building lightweight applications{{Citation needed|date=October 2011}}. MSEgui, like LCL to Lazarus, is the class library that comes with MSEide. It communicates directly with [[X11]] via [[Xlib]] on [[Linux]], and [[WinAPI|gdi32]] under [[Windows]], with support for [[multiple document interface]] (MDI) and visual form [[Inheritance (computer science)|inheritance]].
==Software produced with Free Pascal==
*Free Pascal itself is written in [[Object Pascal]] and [[assembly language]], and [[bootstrapping (compilers)|compiled by itself]].
*Lazarus: Free Pascal’s affiliated [[Embarcadero Delphi|Delphi]]-like software package for rapid development of graphical applications.
*[[Pixel Studio Pro|Pixel image editor]]: a Photoshop-like image editor, arguably among the best-known software created with Free Pascal{{Citation needed|date=March 2011}}.
*[[Peazip]]: an open source archiver.
*[[Morfik]]: Morfik WebOS AppBuilder uses Free Pascal to produce the resulting CGI binaries.
*[[Hedgewars]]: a Worms-like turn based strategy game.
*[[MyNotex]]: a free note-taking and notes manager software for GNU/Linux.
==See also==
{{Expand section|date=March 2009}}
{{Portal|Free software}}
* [[Morfik]]
* [[fpGUI|fpGUI Toolkit]]
==Dış bağlantılar==
==External links==
===Official websites===
*[http://www.freepascal.org Free Pascal]
*[http://lazarus.freepascal.org Lazarus, an integrated development environment tool for FPC]
===General introduction===
*[http://www.osnews.com/story.php?news_id=10607 Introduction to Free Pascal 2.0], by Daniël Mantione, with in-depth introduction to the new version and a bit of its development history.
*[http://www.friends-of-fpc.org/tutorials/basics/dlx_fpc/index.html Getting Started with FPC].
===Development tools===
*[http://ims.mii.lt/fps/en/about/index.html FPS] Complete Win32 based IDE for FPC, including debugger ([[stack trace|trace]], [[breakpoint]] and [[breakpoint|watch]] windows).
*[http://www.bloodshed.net/devpascal.html DevPascal] Win32 based IDE for FPC.
*[http://www.msegui.org MSEide+MSEgui] - a RAD/Cross Platform GUI Development System for FPC.
*[http://coderesearchlabs.com/tabitha/ Tabitha] - a Windows portable editor for FreePascal.
*[http://www.morfik.com Morfik] Win32 based IDE for build Ajax-based web applications that uses FPC for compiling back-end server side logic.
===Resmi internet siteleri===
===Sites specialized in game development===
*[http://www.pascalgamedevelopmentfreepascal.comorg Free Pascal Gameresmi Developmentsitesi]
*[http://lazarus.freepascal.org Lazarus, FPC için geliştirilmiş bir tümleşik geliştirme ortamı]
*[http://www.pascalgamer.com Pascal Gamer Magazine]
*[http://fpc4gba.pascalgamedevelopment.com FPC 4 GBA Initiative] Free Pascal support project for the Game Boy Advance platform.
*[http://itaprogaming.free.fr/tutorial.html FPC 4 GBA Programming Tutorial] An extensive tutorial into game programming on the Game Boy Advance with Free Pascal.
{{Pascal programming language family}}
[[CategoryKategori:Object-oriented programming languages]]
[[CategoryKategori:Free compilers and interpreters]]
[[CategoryKategori:Free software programmed in Pascal]]
[[CategoryKategori:Pascal compilers]]
[[CategoryKategori:Pascal programming language family]]
[[CategoryKategori:Mac OS software]]
[[CategoryKategori:Solaris software]]
[[CategoryKategori:Windows software]]
[[CategoryKategori:Cross-platform software]]
[[CategoryKategori:Linux programming tools]]
[[CategoryKategori:Cross-platform free software]]
[[CategoryKategori:Mac OS X programming tools]]
[[CategoryKategori:Self-hosting software]]
[[af:Free Pascal]]