Revision 36049 of "Python Dili ve Kütüphanesi/DİL/Giriş" on trwikibooks

=1. GİRİŞ=

Bu referans kitapçık Python programlama dilini anlatır. Bir öğretici olarak düşünülmemiştir.

Mümkün olduğunca hassas olmaya çalıştığım zamanlarda, resmi açıklamalar yerine İngilizce' yi kullanmayı seçtim, tabiki sözdizimi ve anlamsal analiz dışında. Bu belgeyi ortalama okuyuculara göre daha anlaşılır yapacak, fakat anlam karışıklığına da yol açacaktı. Sonuç olarak, eğer Mars' tan geliyorsan ve Python' ı sadece bu belgeden yararlanarak yeniden gerçeklemek istiyorsan, bazı şeyleri tahmin etmen gerekebilir ve büyük ihtimalle gerçeklemeyi bitirdiğinde biraz farklı bir dil ortaya çıkmış olacaktır. Diğer yandan, eğer Python kullanıyorsan ve dilin özel bir alanındaki hassas kuralları merak ediyorsan, onları burada mutlaka bulacaksın. Eğer dilin biraz daha resmi bir tanımını görmek istiyorsan, belki bu iş için gönüllü olabilirsin, ya da bir kopyalama makinesi icat edebilirsin :-).

Bir dil referans belgesine çok fazla gerçekleme detayı eklemek tehlikelidir, gerçekleme değişebilir, ve aynı dilin diğer gerçeklemeleri farklı çalışabilir. Diğer yandan, şu sıralar sadece bir tane Python gerçeklemesi yaygın (başka gerçeklemeler var olsa da), ve bazen bunun özel garipliklerini bahsetmeye değer, özellikle de gerçeklemenin bizi fazladan sınırlamalara zorladığı yerlerde. Bu yüzden, yazı boyunca serpiştirilmiş "gerçekleme notları" bulacaksın.

Her Python gerçeklemesi gömülü ve standart bazı modüllerle birlikte gelir. Bunlar [[Python Dili ve Kütüphanesi/KÜTÜPHANE|Python Standart Kütüphanesi]]' nde belgelenmiştir. Dilin tanımıyla önemli bir şekilde etkileştiği zamanlarda bir kaç gömülü modülden bahsedilmiştir.

==1.1. Farklı Gerçeklemeler==

Sadece bir Python gerçeklemesi olsa da, ki açık ara farkla en popüler olanıdır, farklı kitlelerce özel ilgi gören bazı diğer gerçeklemeler de vardır.

Bilinen gerçeklemeler şunları içerir:

CPython
:Bu Python' ın asıl ve en çok bakım yapılan gerçeklemesidir, C' de yazılmıştır. Yeni dil özellikleri ilk olarak genelde burada ortaya çıkar.

Jython
:Python' ın Java' da gerçeklenmiş halidir. Bu gerçekleme Java uygulamalarında bir betik dili olarak ya da Java sınıf kütüphaneleri kullanılarak uygulamalar oluşturmada kullanılabilir. Ayrıca Java kütüphaneleri için denemeler yazmada sıklıkla kullanılır. Daha fazla bilgi [http://www.jython.org/ Jython web sitesi]nden edinilebilir.

Python for .NET
:Bu gerçekleme aslında CPython gerçeklemesini kullanır, fakat yönetilen bir .NET uygulamasıdır ve .NET kütüphanelerini kullanılabilir kılar. Brian Lloyd tarafından gerçeklenmiştir. Daha fazla bilgi için [http://pythonnet.sourceforge.net/ Python for .NET ana sayfası]na bakınız.

IronPython
:.NET için başka bir Python' dır. Python.NET' in aksine, bu IL oluşturan tam bir Python gerçeklemesidir ve Python kodlarını doğruca .NET assembly' lerine çevirir. Jim Hugunin tarafından gerçeklenmiştir, ki bu kişi Jython' un asıl gerçekleyenidir. Daha fazla bilgi için [http://www.ironpython.net/ IronPython web sitesi]ne bakınız.

PyPy
:Python' ın tamamen Python' la yazılmış bir gerçeklenmesidir. Bu gerçekleme diğer gerçeklemelerde olmayan birkaç üst düzey özellikleri destekler, örneğin yığınsız (stackless) desteği ve sadece zamanında (Just in Time) derleyici. Projenin amaçlarından biri, yorumlayıcıyı değiştirmeyi daha kolay yaparak (Python' da yazılmasından ötürü) dille yapılan deneyleri teşvik etmektir. Ek bilgi[http://pypy.org/ PyPy proje ana sayfası]nda bulunmaktadır.

Bu gerçeklemelerin hepsi bu kitapçıkta belgelendirilen dilden bazı yönlerden ayrılır ya da standart Python belgelendirmesinde kapsananın ötesinde özel bilgiler bulundurur. Lütfen kullandığınız özel gerçeklemede başka ne bilmeniz gerektiğini belirlemek için gerçeklemeye özel belgelendirmeye bakınız.

==1.2. Simgelenim==

Sözcüksel analizin tanımı ve sözdizimi değiştirilmiş bir BNF dilbilgisi gösterimi kullanır. Bu gösterim aşağıdaki tanım biçimini kullanır: