Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
YayınlayanAyla Baybaşin Değiştirilmiş 8 yıl önce
1
RUBY BIL 341 PROGRAMLAMA DILLERI Ömer Demir
2
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.
3
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)
4
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.
5
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.
6
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.
7
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.
8
Uygulama Alanları Web uygulamaları GUI uygulamaları XML uygulamaları
9
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.
10
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
11
Yazım Değişken Tanımlamaları – var yerel bir değişken olabilir – @var bir örnek değişkendir. – $var bir global değişkendir.
12
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
13
Yazım Method çağırma şekli nesneye mesaj gönderme şeklindedir. class VCR def initialize @ messages = [] end def method_missing (method, *args, &block) @messages << [method, args, block] end def play_back_to(obj) @ 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
14
Teknik Özellikler Kullanımı ve kod yazması kolay Anlatımcılığı doğal Esnek Güvenilebilir, hata yakalama mekanizmaları mevcut
15
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.
16
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.
17
Zayıf Yönleri Yeteri kadar dökümantasyon yok. Performans problemi var Test etmek güç Büyük çaplı projelerde kullanılmıyor
18
Diğer Dillerle Karşılaştırma
20
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.
21
Ruby vs Java Typing Java: Statik Ruby: Dinamik
22
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!"
23
Kod örnekleri 3 + 5 => 8 if 3 + 5 == 8 puts "heyoo!!" end a = [1,3,true,["asd",3.5]].size => 4 o a = 1 b = 5 c = 3 while a 7
24
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
25
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.
26
Kod Örnekleri class Person attr_reader :name, :age def initialize(name, age) @name, @age = name, age end def (person) # Comparison operator for #sorting @age person.age end def to_s "#@name (#@age)“ end group = [ Person.new("Bob", 33), Person.new("Chris", 16), Person.new("Ash", 23) ] puts group.sort.reverse => Bob (33) Ash (23) Chris (16)
27
Kaynaklar http://en.wikipedia.org/wiki/Ruby_%28progra mming_language%29 http://en.wikipedia.org/wiki/Ruby_%28progra mming_language%29 http://www.ruby-lang.org/tr/ http://www.rubygarden.org https://calshare.berkeley.edu/sites/AS/Web_A pps/ruby/Wiki%20Pages/Home.aspx
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.