BLP 4210 PLATFORM BAĞIMSIZ PROGRAMLAMA Dr. Aslı Ergün 1
Ders İçeriği Bu derste platform bağımsız Java ve Python Dilleri ve çalışma platformları tanıtılacak, bu dillerde temel programlama bilgisi verilecektir. Ders %40 vize , %60 final içerecektir. Ders notları http://kisi.deu.edu.tr/asli.ergun/ sitesinde bulunacaktır. 5
PLATFORM BAĞIMSIZ PROGRAMLAMA Bilişim sektöründe platform bir bilgisayar sisteminin kurulu olduğu düzene verilen addır. Windows, Mac OS, HP-Unix, Sun Solaris, Redhat Linux, Ubuntu, CentOS, cep telefonu işletimsistemleri ve internet(word wide web) ayrı birer platformdur. Platform Bağımsız ise bu sistemlerin tümü için fark gözetmeksizin çalışabilen uygulamalara verilen addır. 2
Örnek Diller: C#, Python, Java Geliştirilen yazılım platforma uygun derleme gibi küçük değişiklikler yapılarak yada hiçbirdeğişiklik yapmadan tümplatformlardaçalıştırabilme yazılımcıiçin büyük fayda sağlamaktadır. Bu programlama dillerine örnek olarak c#,python ve java verilebilir. C, C++ platform bağımlı dillere örnektir. Çünkü C ve C++ programının derlenmesinden sonra oluşan .exe çalışabilir dosyası her platformda çalışmaz. 3
Derleyici Framework Platform bağımsız dillerde kod direk makine diline çevrilmemektedir. Bunun yerine IL(Intermediate Language- Ara Dil) adı verilen özel bir dile çevrilmekte ve bu sayede platform üzerine kurulan dile ait özel derleyici frameworkler (IL’yi makine diline çeviren özel yapı) sayesinde IL dilindeki programımız makine diline çevrilmektedir. 4
Python Platform Bağımsız Yapısı Python’da farklı platformlardaki yorumlayıcılar, sistemin yapısına göre kaynak kodu, python sanal makinesinde makine diline çevirir. 15.05.2019
Java Nedir? Java programlama dili, Sun Microsystems firmasından James Gosling tarafından geliştirilen ve 1995 yılında piyasaya çıkan bir programlama dilidir. Java platformdan bağımsız çalışan, nesne tabanlı, yüksek hızlı, basit tasarımlı, güvenli, dinamik bir programlama dilidir. 15.05.2019
Yazılım Geliştiriciler Neden Java'yı Tercih Ediyor? Yazılımı bir platformda yazmak ve diğer bir sanal platformda çalıştırmak Web tarayıcısı ve erişilebilir Web hizmetleriyle çalışacak programlar yaratmak Çevrimiçi forumlar, mağazalar, anketler, HTML formlarını işleme ve daha fazlası için sunucu tarafı uygulamaları geliştirmek Üst seviyede özelleştirilmiş uygulamalar ve hizmetler yaratmak için Java dili kullanarak uygulamaları ve hizmetleri birleştirmek Cep telefonları, uzak işlemciler, mikro denetçiler, kablosuz modüller, sensörler, ağ geçitleri, tüketici ürünleri ve neredeyse tüm elektronik aygıtlar için güçlü ve verimli uygulamalar yazmak 15.05.2019
JAVA Java dilinde yazılan programların her platformda (farklı işlemci ya da işletim sistemlerinde) çalışabilmesi için geliştirilmiş , program çalıştırabilen bir sanal makine(JVM) bulunmaktadır. Örneğin windows pc'de derlenen bir .class dosyası, bir linux makinede hiçbir işlem gerektirmeden çalışır. Bytecode'lar JVM'in anladığı makine dilidir. Bir nevi java kodu ile makine kodu arasında bir ara-dildir. Her platform için özel olarak yazılmış JVM'ler bu bytecode'ları alarak interpreter aracılığıyla uygun hale çevirerek çalıştırır. 15.05.2019
JAVA Platform Bağımsız Yapısı 15.05.2019
Java Avantajları Nesne Tabanlı & Dağınık : Java nesne tabanlı bir programlama dilidir. İhtiyaç halinde gerekli modüllere ağ üzerinden erişilmesi mantığına dayandığından, modüllerinin tamamının lokal bilgisayarda bulunması gerekli değildir. Sağlam & Güvenilir : Java güçlü bellek yönetimi yeteneği sayesinde programcı hatalarını yakalayabilir ve her nesne için güvenli bir çalışma ortamı sağlar. 15.05.2019
Java Avantajları Platform Bağımsız & Taşınabilir: Uygulama geliştiricilerin en büyük kabusu programların farklı işlemcilerde ve işletim sistemlerindeki çıkardığı problemlerdir; uygulama birisinde çalışırken diğerinde çalışmayabilir. Java derleyicisi burada devreye girer ve programı "bytecode"a çevirir. Bu kod tamamen platform bağımsız olduğundan tüm işlemcilerde çalışır. Multi-threaded & Dinamik 'Multi-threaded' bir programda bir çok işlemin aynı zamanda gerçekleşmesi özelliğidir. Java bu tür program geliştirmeye önemli ölçüde destek verir. 15.05.2019
JAVA ile İlgili Bazı Kavramlar JVM(Java Virtual Machine): Java sanal makinesi donanımdan bağımsız yazılım geliştirme ihtiyacına cevap verme amacıyla geliştirilen bir teknolojidir. Java’nın temel felsefesi olan “bir kere yaz, her yerde çalıştır” sanal makine sayesinde varolmuştur. Garbage Collector: Çöp toplayıcı sayesinde Java’da bir nesne oluşturulduktan sonra o nesne ile işiniz bittiğinde hiçbir şey yapmanız gerekmez. Sanal makine akıllı bir biçimde kullanılmayan bellek bölümlerini belirli aralıklarla ya da adaptif metodlarla sistemi otomatik olarak temizler ve sisteme iade eder. Java API: Java yazılımlarında kullanılan yazlım kütüphanelerine genel olarak verilen isimdir. Java API ile disk, grafik, ağ, veri tabanı, güvenlik gibi yüzlerce konuda kullanıcılara erişim imkani sunulur. Java API J2SDK’nin bir parçasıdır. JDK(Java Development Kit): Java geliştiricileri için standart kütüphanelerden ve JVM den oluşmaktadır. JRE(Java Runtime Environment) Sadece Java uygulamalarını çalıştırmak için kullanılır. İçinde JVM yi barındırır. 15.05.2019
Java Kurulumu 15.05.2019
Java Kurulumu 15.05.2019
Java Kurulumu 15.05.2019
Java Kurulumu 15.05.2019
Java Kurulumu 15.05.2019
Linux(ubuntu) Java Kurulumu sudo apt-get install default-jre (sudo apt-get install openjdk-9-jre) sudo apt-get install default-jdk export JAVA_HOME=/usr/lib/jvm/java-8-openjdk export PATH=$PATH:/usr/lib/jvm/java-8-openjdk/bin javac -version 15.05.2019
Java programı Çalıştırma Pogramcı kodu yazar. (.java uzantılı) Bu kodu java derleyicisi(javac) ile derler (.class uzantılı kod oluşur.) Bu koda bytecode denmektedir. Bytecode JVM(java) tarafından adım adım işletilir. 15.05.2019
İlk java programı 15.05.2019
Konsol (cmd) ortamında java programı çalıştırmak 15.05.2019
JAVA IDE Programları IDE programları daha hızlı efektif programlar yazmak için kullanılır. En popüler IDE'ler: Netbeans Eclipse IntelliJ 15.05.2019
IntelliJ Kurulumu IntelliJ sitesinden community versiyonu indirilir. 15.05.2019
Setup programını çalıştırıyoruz. 15.05.2019
Kurulum Klasörünü seçiyoruz. 15.05.2019
Konfigurasyon seçimlerini yapıyoruz. 15.05.2019
Menu kalsör seçimini yapıyoruz ve install basıyoruz. 15.05.2019
15.05.2019
IntelliJ başladığında: 15.05.2019
15.05.2019
Pluggins(eklentiler) 15.05.2019
Yeni bir proje yaratalım: 15.05.2019
15.05.2019
Başka java SDK seçmek: 15.05.2019
15.05.2019
15.05.2019
Tip of the Day 15.05.2019
Programı çalıştırma 15.05.2019
Ekran Çıktısı 15.05.2019
Netbeans Kurulumu 15.05.2019
Netbeans Kurulumu 15.05.2019
Netbeans Program Çalıştırma 15.05.2019
Netbeans'te Proje Oluşturma 15.05.2019
Netbeans'te Proje Oluşturma 15.05.2019
Netbeans'te Proje Oluşturma 15.05.2019
Netbeans'te Proje Çalıştırma 15.05.2019
HelloWorld package helloworld; /** * * @author LENOVO */ public class Helloworld { * @param args the command line arguments public static void main(String[] args) { // TODO code application logic here System.out.println("Hello, World"); } 15.05.2019
Netbeans'te Proje Çalıştırma 15.05.2019
Eclipse Kurulumu 15.05.2019
Eclipse Kurulumu 15.05.2019
Eclipse program Çalıştırma
Eclipse program Çalıştırma 15.05.2019
Eclipse Proje Oluşturma 15.05.2019
Eclipse Proje Oluşturma 15.05.2019
Eclipse Proje Oluşturma 15.05.2019
Eclipse Proje Oluşturma 15.05.2019
Eclipse Proje Çalıştırma 15.05.2019
Eclipse Proje Çalıştırma 15.05.2019
Herkese Başarılar Dilerim. 2017-2018 Güz Eğitim Döneminde Herkese Başarılar Dilerim. Dr. Aslı Ergün