RUBY BIL 341 PROGRAMLAMA DILLERI Ömer Demir. Tarihçe Yukihiro “matz” Matsumoto tarafından geliştirilmiştir. Yukihiro “matz” Matsumoto 1995 yılında piyasaya.

Slides:



Advertisements
Benzer bir sunumlar
Programlama-II (Java ile Bilgisayar Programlama)
Advertisements

Yazılım Geliştirme ve Java
JAVA TEMELLERİ GİRİŞ JAVA TEMELLERİ GİRİŞ signalsec.com & mialkan.com.
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
WEB SERVİCE İDRİS YÜRÜK MAHMUT KAYA.
İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, Kabuk ve diğer temel kavramlar)
.NET FRAMEWORK.
Programlama-II (Java ile Bilgisayar Programlama)
C Programlama Diline Giriş
İşletim Sistemlerine Giriş – 2 Kaynakların Paylaşımı
Bölüm 6 – Metodlar ve Parametreler
Bölüm 4 – Kontrol İfadeleri:1.kısım
ANDROID işletim sistemi
Javascript Oğuz İNAL.
Metodlar ve Parametreler
SQL de Değişken Tanımlama
Karar ifadeleri ve Döngüler
NESNEYE YÖNELİK PROGRAMLAMANIN TEMEL İLKELERİ GENEL BİR BAKIŞ
İSİM UZAYLARI (NAMESPACE).
DELEGATE OOP-UYG.
JAVA İ LE PROGRAMLAMAYA G İ R İ Ş Ekim Dr. Galip Aydın.
MART 2013 İŞLETİM SİSTEMLERİ.
İşletim Sistemleri Tanım: Kullanıcı ile bilgisayar donanımı arasında bağlantıyı sağlayan özel bir yazılımdır.
Yazılım Gelişimi. Donanım gelişimine paralel olarak süren yazılım gelişimi, son on yılda kayda değer bir ivmelenme ile bilgisayarları, herhangi bir uzmanlık.
SQL de Değişken Tanımlama
Bilgisayar Programlama
Ses Kontrol Metodlar ile ilgili son birkaç söz Tekrar: Programlama için başlıca 3 model.
Koşul İfadeleri ve Akış Kontrolü Yazdığımız uygulamanın hangi koşulda nasıl davranacağını belirterek bir akış kontrolü oluşturabilmek için koşul ifadelerini.
© Haluk Bingöl v2.23 Java Programlama Dili - 01 Tek Class ile Programlama Dr. Haluk Bingöl BÜ - CmpE BU-SWE.
Önceki Dersi Hatırlama !!
JAVA’DA DÖNGÜLER.
Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar
BPR152 ALGORİTMA VE PROGRAMLAMA - II Öğr. Gör. Bayram AKGÜL
Nesneye Dayalı Programlama
JAVA’DA DİZİLER Dr.Galip AYDIN.
Chapter 1: A First Program Using C#
DÖNGÜLER.
Ana Programlama Dillerinin Evrimi
String class String karakterler dizisidir
Python Aslı Ergün.
Outline 4.1 Giriş 4.2 Algoritmalar 4.3 Pseudocode 4.4 Kontrol İfadeleri 4.5 if tek-seçimli ifadeler 4.6 if else seçimli ifadeler 4.7 while döngü ifadeleri.
ALİ FINDIK Galatasaray Ünİversİtesİ 2015
JAVA PROGRAMLAMA ORNEKLER
Görsel C# ile Windows Programlama
HAZIRLAYAN:SEMİH KÜRTÜNCÜ
Mobil Uygulama Geliştirme
Modül 1: Giriş. Genel Bakış Temel.NET kavramları Geliştirme ortamında gezinti Bir C# projesi oluştur Use Visual Studio.NET Veriye eriş Hata ayıkla ve.
Modül 2: Formlar ve Kontroller ile Çalışmak. Programlama Kavramları Formlar ile Çalışmak Kontroller ile Çalışmak Kodu Biçemlemek Genel Bakış Visual Studio.NET.
İsimler ve Bağlanma Names and Bindings
While EndDo Repeat Until For Next.  Program mantığı içinde belirli bir düzene bağlı kalarak sürekli tekrar eden işlemlerin belirli bir kritere/değişkene.
İÇERİK YÖNETİM SİSTEMİ Öğr. Gör. Emine TUNÇEL Kırklareli Üniversitesi Pınarhisar Meslek Yüksekokulu.
Sakarya Üniversitesi Bilgisayar ve Bilişim Bilimleri Fakültesi Bilgisayar Mühendisliği Prof. Dr. Ümit Kocabıçak Prof. Dr. Cemil Öz Doç. Dr. Ahmet Turan.
JAVA 1. GİRİŞ & TARİHÇE Java, Sun Microsystems mühendislerinden James Gosling tarafından geliştirilmeye başlanmıştır. Açık kodlu. Nesneye yönelik. Düzlemden.
İbrahim Olgaç PROGRAMLAMA DİLLERİ SUNUMU C#
Python Programlama Dili R. Emre Başar 5 Ocak 2005 Guido Van Rossum da kim oluyor?
Algoritma ve Programlama
ALGORİTMA VE PROGRAMLAMAYA GİRİŞ
C Programlama Diline Giriş
5- class & object Nesne Yönelimli Programlama - i
Nesne Yönelimli Yaklaşım
Excel’de VBA Programlama (Visual Basic Application)
Python ve Cgi Scripting Giriş
YAPISAL PROGRAMLAMA Hafta-6
4- OPERATÖR – koşul - döngü Nesne Yönelimli Programlama - i
Python ile Bilimsel Hesaplama
JAVA’DA DİZİLER. Özet  Dizi: belirli sayıda ve aynı veri türünden de ğ işkenlere aynı adla erişilmesini sa ğ layan bir yapıdır.  Dizilerde döngü işlemleri.
Bir Döngünün Bölümleri (hatırlatıcı)
Bilgisayar Bilimi Fonksiyonlar-2.
C ile Programlamaya Giriş
Sunum transkripti:

RUBY BIL 341 PROGRAMLAMA DILLERI Ömer Demir

Tarihçe Yukihiro “matz” Matsumoto tarafından geliştirilmiştir. Yukihiro “matz” Matsumoto 1995 yılında piyasaya çıkmıştır. Programlama dillerinin popülaritesini araştıran TIOBE istatistiklerine göre, Ruby dünya çapında en çok kullanılan 10.cu dil haline gelmiştir. Ruby’nin bu hızlı büyümesinde Ruby on Rails framework’ünün büyük etkisi bulunmaktadır.

Oluşturulma Nedeni Matsumoto, en sevdiği dillerin (Perl, Smalltalk, Eiffel, Ada, ve Lisp) en iyi özelliklerini harmanlayarak fonksiyonel programlama ile imperative programlamaya dayanan yeni bir dil yaratmayı amaçlamıştır. Ruby tıpkı insan vücudu gibi, görünüşte basit, ama içinde çok kompleks bir yapıya sahiptir. ( Matsumoto)

Genel Özellikleri Nesneye Dayalı bir dildir. Herşey nesnedir. Gördüğünüz en ufak bilgi parçası ve kod kendi özelliklerine ve olaylarına sahiptir. Esnek bir dildir. – Ruby’nin operatörleri sözdizimsel olarak esnektir. Yeniden tanımlamalara olanak sağlar. Değişkenler ihtiyaç duyulduklarında dinamik olarak yaratılırlar. Single inheritance’ı destekler. Ruby tüm nesneleri için gerçek bir mark & sweep çöp toplayıcısı sunar.

Genel Özellikleri Hata yakalama mekanizması vardır. Method’lar nesnelerle mesajlaşma amacıyla vardır. Sınıflar bir modülü kendisine dahil ederse, onun tüm metodlarını da almış olur. Açık kaynaklıdır.

Genel Özellikleri Ruby, GNU/Linux üzerinde geliştirilmiş olsa dahi, UNIX’in bir çok çeşidi, Mac OS X, Windows 95/98/Me/NT/2000/XP/Vista/7, DOS, BeOS, OS/2, vb. üzerinde çalışmaktadır.

Uygulama Alanları Simulasyonlarda  Nasa, birçok simulasyonu yapmak için Ruby kullanıyor.  Motorola, bazı simulasyonlarında Ruby kullanıyor.  UCB’de kablosuz telefonları ve trafiğin yükünü kontrol etmek için Ruby kullanıyor Robotbilimde – Siemens, bir servis robotunun kontrolünü sağlamak için Ruby kullandı. Telefonculukta – 3G kablosuz telefonculuk şirketi ~150K’lık C++ koduna karşı ~6K lık Ruby kodunu kullandı. Oyunlarda – Japonya’da ticari bir oyun firması geliştirdiği RPG oyununu 2004’te piyasaya sürdü. Bilimde – Yüksek yoğunluklu yıldız sistemlerinin modellenmesi üzerinde çalışan ACS şirketi de projelerinde Ruby kullanıyor.

Uygulama Alanları Web uygulamaları GUI uygulamaları XML uygulamaları

Döngüler - iteratorler (.each,.collect,.inject vs…) - while - kod blokları ile sağlanır. Hash ( key/value ya da name/value ) Ruby code blocks – Diğer dillerdeki code block’lar gibi degildir – Method çağırmaya benzerler. – Bir method’dan diğer methoda gönderilebilirler. – Iterator’lerin yerine kullanılarak döngü görevini yapabilirler.

Method – def Method_Adi tanımlama End -Örnek : def addall ( first, *rest ) rest.each { |r| first = first + r } first end # of addall. addall( 1, 2, 3, 4, 5, 6, 7 ) >>28

Yazım Değişken Tanımlamaları – var yerel bir değişken olabilir bir örnek değişkendir. – $var bir global değişkendir.

Yazım Yeni nesne oluşturmak için özel bir tanımlama yapmaya gerek duyulmaz. – a = Array.new nil normal bir nesnedir. Hiçbir zaman null pointer hatası alınmaz! a = nil a.nil? # => true a.methods # => list of methods a.abs # => NoMethodError

Yazım Method çağırma şekli nesneye mesaj gönderme şeklindedir. class VCR def messages = [] end def method_missing (method, *args, << [method, args, block] end def messages.each do |method, args, block| obj.send(method, *args, &block) end Bu object kendisine gelen bütün mesajları kaydeder ve sonra da diğer object’lere gönderir

Teknik Özellikler Kullanımı ve kod yazması kolay Anlatımcılığı doğal Esnek Güvenilebilir, hata yakalama mekanizmaları mevcut

Ruby’nin Avantajları C’den Ruby çağıran şık API’si sayesinde Ruby’de C eklentileri yazmak Perl ya da Python’dan daha kolaydır. Bu API zamanda yazılımlara betik dili olarak Ruby’yi gömmek için gereken çağrıları da içerir. Ayrıca SWIG arayüzü de alternatif olarak sunulmaktadır. İşletim sistemi izin verdiği sürece harici dinamik kütüphaneler yükleyebilirsiniz.

Ruby’nin Avantajları Ruby işletim sisteminden bağımsız iş parçacığı özelliği sunar. Yani işletim sisteminin desteklemesine bakmaksızın, MS-DOS üzerinde olsanız bile çoklu iş parçacıkları kullanabilirsiniz! Taşınabilirdir. Hızlı bir şekilde GUI oluşturulabilir. Zengin kütüphanelere sahiptir. Öğrenmesi ve programlaması kolaydır.

Zayıf Yönleri Yeteri kadar dökümantasyon yok. Performans problemi var Test etmek güç Büyük çaplı projelerde kullanılmıyor

Diğer Dillerle Karşılaştırma

Ruby vs Java Çalışma şekli Java: Derle,Yorumla ve Çalıştır Ruby: Yorumla ve Çalıştır. Veri Tipleri Java: Object ve primitive tipler Ruby: Herşey object Method Çağrıları Java: obj.method() üye fonksiyon çağrılır. Ruby: obj.method nesneye mesaj gönderir.

Ruby vs Java Typing Java: Statik Ruby: Dinamik

Kod Örnekleri # The famous Hello World # program is trivial in # Ruby. You don't need: # # * a "main" method # * newline escapes # * semicolons # # Here's the code: puts "Hello World!“ p "Merhaba Dunya!" print "Merhaba Dunya!" $stdout << "Merhaba Dunya!"

Kod örnekleri => 8 if == 8 puts "heyoo!!" end a = [1,3,true,["asd",3.5]].size => 4 o a = 1 b = 5 c = 3 while a 7

Kod Örnekleri sonuc = 0 5.times do |i| sonuc += i end sonuc => 10 arr = [ 1,2,3,4,5,6,7 ] arr.each do |a| p a**2 end

Kod Örnekleri 3.times { print "Ruby‘yi *seviyoruz* -- harika bir dil!" } >> Ruby‘yi *seviyoruz* -- harika bir dil!“ Ruby‘yi *seviyoruz* -- harika bir dil!“ class Numeric def topla(x) self.+(x) end end y = 5.topla 6 >># y'nin değeri 11 oldu.

Kod Örnekleri class Person attr_reader :name, :age def = name, age end def (person) # Comparison operator for person.age end def to_s end group = [ Person.new("Bob", 33), Person.new("Chris", 16), Person.new("Ash", 23) ] puts group.sort.reverse => Bob (33) Ash (23) Chris (16)

Kaynaklar mming_language%29 mming_language% pps/ruby/Wiki%20Pages/Home.aspx