Gerçek Zamanlı Gömülü Yazılımlarda Derleyici Bayraklarının Etkin Kullanımı Effective Use Of Compiler Flags On Real Time Embedded Software

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "Gerçek Zamanlı Gömülü Yazılımlarda Derleyici Bayraklarının Etkin Kullanımı Effective Use Of Compiler Flags On Real Time Embedded Software"

Transkript

1 Gerçek Zamanlı Gömülü Yazılımlarda Derleyici Bayraklarının Etkin Kullanımı Effective Use Of Compiler Flags On Real Time Embedded Software Barış İYİDİR Adnan KALAY Gökhan İŞBİTİREN Özlem YILMAZ Özet Gerçek zamanlı gömülü yazılımlardaki performans gereklerinin karşılanmasında yazılım geliştirme sürecinde kullanılan araçların seçimi ve bu araçların verimli kullanımının önemi giderek artmaktadır. Gömülü sistemlerin kısa sürede teslim edilme ihtiyaçları yazılım parçalarının yeniden kullanımını zorunlu kılmakta, yeniden kullanımı sağlamak için bütün platformlarda değiştirilmeden kullanılabilecek yazılımlar geliştirmek amaçlanmaktadır. Dolayısıyla platforma özel yapılabilecek optimizasyonlar yazılım içerisinde yapılamamakta bu tür optimizasyonlar derleyicilere bırakılmaktadır. Derleyici bayraklarının etkin kullanımı ile yazılım içerisinde değişiklik yapılmadan istenilen performansa ulaşılabilmektedir[1]. İşlemci mimarilerindeki gelişim ancak derleyicilerin işlemci mimarisini optimum kullanması ile yazılım performansına yansıtılabilmektedir. Derleyicilerin çalışma ilkelerinin bilinmesi ve derleyici dostu kod geliştirilmesi ile derleyiciden en yüksek verimi almak mümkün olmaktadır[2]. Bu çalışma kapsamında derleyici dostu kod yazma kurallarının incelenmesinin yanı sıra PPC603e[3][4] işlemcisi üzerinde koşan ASELSAN da geliştirilen gerçek zamanlı Servo Kontrol uygulama yazılımı üzerinde derleyici bayraklarının etkisi incelenmiş ve gerçek zamanlı yazılımlarda derleyici bayraklarının etkin kullanımı için önerilerde bulunulmuştur. Abstract The performance requirements of real time embedded systems have raised importance on the choice of software development tools and effective use of those tools[1]. Code reuse is becoming indispensable in order to deliver products on time[1]. The aim of using previously developed software on different platforms makes it impossible to apply target specific optimizations on source code and this aim can be achieved by using compiler flags. The reflection of superior processor architecture can only be seen on the software performance only if the compiler can use this architure effectively. The performance of compilers can be optimized with knowledge of compiler working principles and compiler friendly codes[2]. This paper investigates the effect of compiler flags on real time servo control software running on PPC603e[3][4] processor, furthermore this paper explores the rules on writing compiler friendly codes. As a result some suggestions are made in order to provide effective use of compiler flags on real time embedded systems. 1. Giriş Gömülü sistemlerdeki gerçek zaman kısıtları, maliyet faktörleri ve karmaşık sistemlerin kısa sürede teslim edilme gerekleri nedeniyle yazılım performansının belirlenmesinde derleyicilere bağımlılık giderek artmaktadır. Derleyicilerin sunduğu derleme seçeneklerinin gerçek zamanlı gömülü yazılımlarda etkin kullanımı ile yazılım performansının %20-30 oranında arttırabileceği belirtilmiştir[1]. Gömülü bir yazılımda kod işleyişi esnasında uygulama yazılımında harcanan zaman (%90) gerçek zamanlı işletim sisteminde harcanan zamandan çok daha fazla olduğundan uygulama yazılımının performansının arttırılması yazılımın bir bütün olarak performansının arttırılmasına önemli katkı vermektedir. Performans artımı için derleme seçenekleri[5][6] konusunda dikkat edilebileceği gibi yazılım geliştirme aşamasında kodlama konusunda belirli kurallara uyarak derleyiciden daha yüksek bir performans almak mümkün olabilmektedir. Ancak geliştirilen kod parçalarının yeniden kullanılabilirliğini arttırmak için derleyicilerin otomatik olarak yapabileceği optimizasyonların kaynak kod seviyesinde yapılmaması önerilmektedir[1]. Derleyici optimizasyonlarının gerçek zamanlı gömülü yazılım performansındaki etkisi göz önüne alındığında, derleyicilerin çalışma ilkelerinin anlaşılması ve yazılım geliştiricilerin derleyicilerin sağladığı olanakları kullanarak yazılım geliştirmeleri, yazılım maliyeti ve performansı açısından önemli faydalar sağlamaktadır. Derleyici bayraklarının ve kodlama tarzının performansa etkisini araştırmak üzere ASELSAN da

2 geliştirilen gerçek zamanlı Servo Kontrol Uygulama yazılımı üzerinde ölçümler alınmıştır. Çalışma kapsamında Tornado 2.2 aracı ile birlikte sağlanan GCC ver:2.96 derleyicisi ve vxworks 5.5 işletim sistemi kullanılmıştır. Bu çalışmada PPC603e işlemcisi üzerinde alınan ölçümler değerlendirilerek gerçek zamanlı gömülü yazılımların performansını arttırmak için uygulanabilecek yöntemler hakkında bilgi verilecektir. Makalenin ikinci bölümünde kod performansını etkileyen faktörler hakkında bilgi verilmiştir. Üçüncü bölümde kodlama tarzının performansa etkisi, dördüncü, beşinci ve altıncı bölümlerde derleyici bayraklarının etkisi PPC603e işlemcisi üzerinde koşan gerçek zamanlı Servo Kontrol yazılımı üzerinde incelenmiştir. Sonuç bölümünde elde edilen sonuçlar değerlendirilerek gerçek zamanlı gömülü yazılımlarda performans artışı sağlayabilecek yöntemler için önerilerde bulunulmuştur. 2. Kod Performansını Etkileyen Faktörler Yazılımlarda hız açısından en önemli kayıplardan birisi bellek erişimidir[7]. Üzerinde işlem yapılacak veri işlemciye ne kadar yakın bir bölgede tutulursa performans o kadar yüksek olmaktadır. Dolayısıyla hız açısından en yüksek verim verilerin yazmaçlarda tutulduğu durumda en düşük verim ise verilerin bellekte tutulduğu durumda elde edilir. Bu nedenle derleyiciler değişkenleri kodlama dil kurallarının izin verdiği ölçüde yazmaçlarda tanımlamaya çalışmaktadır[2]. Genel olarak integer, float ve pointer gibi basit tipler yazmaçlarda tutulur. Adresleri üzerinden işlem yapılan değişkenler adres fiziksel bir alana karşılık geldiğinden yazmaçlarda tanımlanamaz [2]. Ayrıca diziler işaretçi üzerinden işlem gördüklerinden yazmaçlarda tanımlanmaları mümkün değildir. Verinin bellekten okunması sırasında işlemcinin veriyi beklemesi nedeniyle oluşan zaman kaybını önlemek amacıyla verilerin işlem öncesinde okunması önerilmektedir [8] [9]. Bu işlem için işlemcinin hangi veriye ihtiyaç duyacağının doğru tahmin edilmesi gerekmektedir. Doğru tahmin oranını arttırmak için profil e dayalı derleme işlemi yapılabilir [10]. İşlemci için gerekli olan verinin yüklenmesi veri ön bellekte ise birkaç saat dilimi gerektirirken bellekte ise 100 saat diliminden daha fazla süre gerektirmektedir [7]. Bu durum istenilen verinin önceden ön belleğe yüklenmesinin yazılımların performansını belirleyen önemli etkenlerden birisi olduğunu göstermektedir. İşlemcinin ihtiyaç duyduğu verinin önbellekte olma (cache hit) ihtimali beraber kullanılan fonksiyonların bellekte birbirlerine yakın tutulduğu durumda artmaktadır[11]. Fonksiyonlar genel olarak kaynak kodda sıralandığı şekilde bellekte tutulduğundan beraber kullanılan fonksiyonların ardışık olarak kodlanması yazılımın performansını arttıracaktır. Aynı şekilde beraber kullanılan değişkenlerin de birlikte tanımlanması yazılım performansını arttıracaktır. Bu anlamda nesne yönelimli programlama dillerinde aynı sınıfın değişkenleri beraber tanımlandıklarında performansın yüksek olması beklenmektedir [11]. Yazılımların performansını belirleyen en önemli etkenlerden birisi de kod yazma tarzıdır. Kodlama sırasında işlemci için doğru veri boyutunu kullanmak performansı ciddi biçimde etkilemektedir. Yazılım performansını arttırmak için önerilen bir başka yöntemde tipe zorlama (casting) işleminden mümkün olduğu kadar kaçınmaktır[2]. Aritmetik eşitliklerde farklı tiplerden değişkenlerin kullanılması tipe zorlama işlemini gerektirdiğinden performansı düşürmektedir. Fonksiyon çağırma işlemi yazmaçlardaki verilerin belleğe yazılmasını gerektirdiğinden yazılım performansını düşürür. Derleyiciler bu problemi gidermek için fonksiyonların çağrıldıkları yerlere fonksiyon içeriğini kopyalayarak fonksiyon çağırma sırasında oluşabilecek performans kaybını önleyebilmektedir. Bu işleme Function-Inlining adı verilmektedir. Ancak bu işlem kod büyüklüğünü arttıracağından bellek kısıtı olan gömülü sistemlerde kullanılması tavsiye edilmemektedir. 3. Kodlama Kurallarının Performansa Etkisi Kodlama kurallarına dikkat edilerek yazılım performansı yükseltilebilir. Bu işlem için derleyicilerin çalışma kurallarının bilinmesi ve bu kurallara uygun kod yazılması gereklidir. Ayrıca yazılım geliştirilirken yazılımın üzerinde koşacağı donanım göz önüne alınarak veri tiplerinin tanımlanmasının performansı arttıracağı düşünülmektedir[2]. Yazılım geliştiriciler arasında genel olarak fonksiyonlara parametre olan değişkenlerin işaretçi ile geçirildiği zaman performansın daha yüksek olduğu düşünülse de işaretçi ile geçirilen değişken üzerinde yapılan işlem sayısına bağlı olarak (küçük veri boyutları için) performansın değişkenin değerinin geçirilmesine göre daha düşük çıkabileceği belirtilmektedir. Ayrıca gömülü yazılımlarda global değişken kullanımı oldukça yaygındır. Ancak global değişkenlerin erişildikleri her noktada bellekten erişilme zorunlulukları olduğundan performansı kötü etkileyeceği düşünülmektedir[2]. Bunlara ek olarak gömülü yazılımlarda bellek sıkıntısı yaşanabileceğinden genel olarak küçük veri tipleri tanımlanmaya çalışılmaktadır. Ancak bu durumda işlemci yazmaç boyutu ile uyumsuzluk sonucunda performans düşüşü gözlenebilir. Tanımlanan veri tiplerinde negatif değer alamayacak olanların unsigned olarak tanımlanmasının aritmetik işlemler sonrasında işaret bulmak için harcanan zamandan kazandırması

3 nedeniyle yazılım performansını arttıracağı düşünülmektedir. PPC603e işlemcisi üzerinde kodlama kurallarının etkisini incelemek üzere alınan ölçümler Tablo 1 de verilmiştir. Global değişken kullanımı ile lokal değişken kullanımının performans üzerindeki etkisi incelediğinde aynı değişkenin lokal tanımlanmasının global tanımlamasına göre performans açısından %13 lük bir artışa sebep olduğu gözlenmiştir. Bu farkın lokal tanımlanan değişkenlerin yazmaçlarda tanımlanabilmesinden kaynaklandığı düşünülmektedir. Bölme işleminde değişken işaretinin performansa %19 luk bir etkisinin olduğu görülmüştür. Bu sonuç negatif değer alamayacak değişkenlerin unsigned olarak tanımlanmasının performansı yükselteceğini göstermektedir. İşlemci mimarisi ile değişken boyutu arasındaki ilişkinin performansa etkisi float, double ve int, short tipindeki değişkenlerle yapılan toplama işlemi sonuçları incelenerek görülebilir. Her iki durumda da yazmaç boyutu (32 bayt) ile aynı boyuttaki değişken tipleri (float, int) kullanıldığında performansın yüksek olduğu görülmektedir. Fonksiyonlara parametre geçirimi esnasında bir int değişkenin işaretçi ile geçirilmesi durumunda performansın %18 oranında azaldığı görülmektedir. Veri boyutu arttıkça işaretçi ve değer ile geçirme arasındaki performans farkının azaldığı gözlenmiştir. Bu sonuçlar dikkate alındığında küçük veri boyutları için (<40 bayt) parametrelerin değer ile geçirilmesinin performansı yükselteceği düşünülebilir. Tablo 1 Kodlama Kurallarının Performansa Etkisi Kodlama Kuralı İşaretçi ile geçirme & Değer ile geçirme (Yapı 32 bayt) 4. C++ ve Kod Üretim Bayraklarının Performansa Etkisi Performans Artışı (%) 4,55 İşaretçi ile geçirme & Değer ile geçirme (int) 18,00 Global & Lokal Veri kullanımı 13,64 İşaretli veri ile bölme İşlemi & İşaretsiz veri ile bölme İşlemi 19,15 Double ile toplama & float ile toplama 97,56 int ile toplama & Short ile toplama 12,20 Kaynak kod makine diline dönüştürülürken derleyiciler tarafından bazı derleme seçeneklerinde verilen komutlar doğrultusunda düzenlemeler gerçekleştirilir. Yazılım performansını belirleyen en önemli etkenlerden birisi de bellek erişiminin sıklığıdır. Global değişkenler aksi belirtilmediği sürece her erişildikleri noktada bellekten okunurlar veya yazılırlar. Ancak derleyici ye -fno-volatile ve -fno-volatileglobal seçenekleri belirtilerek bu değişkenlerin her noktada bellekten okunması veya yazılması yerine işlemlerden önce bir defa okunması veya işlemler bittikten sonra belleğe yazılması sağlanabilir[5]. Bu şekilde yazılım performansının arttırılabileceği düşünülmektedir. C++ dilinin bazı gerçek zamanlı gömülü yazılımlarda kullanılmasının performans kaybına neden olabileceği belirtilmektedir. Genel olarak kod içerisinde kullanılmayan özelliklerin performans kaybına neden olmayacağı düşünülmesine rağmen özellikle exception handling ve rtti(run time type identification) desteklerinin kod içerisinde kullanılmasa bile performans kaybına neden olabileceği belirtilmiştir[11]. Tablo 2 C++ ve Kod Üretim Bayraklarının Performansa Etkisi Bayrak -fno-exceptions 4,37 -fshort-double 5,78 -fno-volatile + -fno-volatile-global Performans Artışı(%) 4,33 -fstack-check -8,94 -fno-rtti 3,10 ASELSAN da geliştirilen PPC603e işlemcisi üzerinde koşan gerçek zamanlı Servo Kontrol uygulaması üzerinde C++ ve kod üretim bayraklarının performansa etkisini incelemek üzere alınan ölçümler Tablo 2 de verilmiştir. Ölçümlerin alındığı uygulama içerisinde exception handling ve rtti özellikleri kullanılmamasına rağmen bu özelliklerin derleyici seçenekleri ile kapatılması sonucunda performans artışı sağlanmıştır. Global değişkenlerin volatile tanımlanmaması ile bellek erişimi azaltılarak performans artışı sağlanmıştır. Yazılım içerisinde double (8 byte) olarak tanımlanan değişkenlerin derleyici seçeneği ile float (4 byte) işlem görmesi sağlanmıştır. PPC603e işlemcisinde bulunan yazmaçların 32 bit olması sebebiyle bu değişiklik sonucunda önemli performans artışı elde edilmiştir. Gerçek zamanlı gömülü yazılımlarda yığıtların (stack) kontrol edilmesi hataların önlenmesi açısından faydalı olabilmektedir. Ancak bu kontrolün derleyici seçenekleri ile aktif hale getirilmesi durumunda ciddi performans kaybı olmaktadır.

4 5. Genel Optimizasyonların Performansa Etkisi Yazılımın performans ve büyüklük olarak optimizasyonu derleyiciler tarafından sunulan genel -O0 -O1 -O2 -O3 -Os KB KB optimizasyon seçenekleri ile sağlanabilmektedir. Genel optimizasyon seçenekleri ile birden fazla optimizasyon seçeneğini aynı anda aktive etmek mümkün olmaktadır[5]. Bu optimizasyonların etkisinin yazılımın yapısına bağlı olarak değiştiği belirtilmektedir. Genel optimizasyonların PPC603 işlemcisi üzerinde koşan gerçek zamanlı Servo Kontrol uygulaması üzerindeki etkisi Tablo 3 te verilmiştir. Tablo 3 te sadece yazılım performansına etki eden seçenekler listelenmiştir. Performansı değiştirmeyen seçeneklere ait ölçümler verilmemiştir. Tablo 3 Genel Optimizasyonların Performansa Etkisi Bayrak (% 17,5) KB (%17,7) KB (%16,6) Performans Artışı(%) -O1 28,6 -O2 28,76 -O3 28,9 -Os 28,7 -fomit-frame-pointer ~8.0 -fforce-mem 1, KB (%18) Tablo 3 te verilen ölçümler incelendiğinde O1,O2 ve O3 optimizasyonlarının hiç optimizasyon yapılmayan duruma göre yaklaşık %29 performans artışı sağladığı gözlenmiştir. Ancak O1,O2 ve O3 optimizasyonlarının kendi aralarında büyük bir performans farkı gözlenmemiştir. Bu sonucun, optimizasyon seviyeleri arasında farklılık yaratan bayrakların ölçüm alınan yazılım üzerinde fazla etki yaratamamasından kaynaklandığı düşünülmektedir. Buna ek olarak optimizasyon seviyeleri ile alınan ölçümler ile, belirtilen optimizasyon seviyelerinde otomatik olarak aktive edilen bayrakların tek tek eklenmesiyle alınan ölçümler karşılaştırıldığında aynı sonuçların elde edilemediği görülmüştür. Bunun nedeni olarak O1,O2 veya O3 ile optimizasyon yapıldığında belirtilen seviye içerisinde yer alan optimizasyonların sırasının derleyici tarafından belirlenmesi olabileceği düşünülmüştür. Hata ayıklama (Debug) amaçlı kullanılan işaretçinin kullanımının engellenmesi (-fomit-framepointer) ile yaklaşık %8 lik bir performans artışı görülmüştür. Hafızada yer alan değişkenlerin aritmetik işlemler öncesinde yazmaçlara kopyalanması(-fforcemem) ile sürekli hafıza erişiminin engellenmesi sonucunda %1,5 lik performans artışı görülmüştür. Tablo 4 Genel Optimizasyonların Kod Büyüklüğüne Etkisi Genel optimizasyon seçeneklerinin kod büyüklüğüne etkisini araştırmak için alınan optimizasyon seviyesine karşılık olarak kod büyüklüğü bilgisi Tablo 4 te verilmiştir. Tablo 4 te verilen yüzdeler hiç optimizasyon yapılamamış kod büyüklüğüne göre belirtilen optimizasyon seviyesinde kodun büyüklüğünün küçülme oranıdır. Bu sonuçlara göre beklendiği gibi O3 seviyesinde diğer optimizasyon seviyelerine kıyasla daha büyük; -Os seviyesinde ise daha küçük boyutlu kod elde edilmiştir. Fakat yine de optimizasyon seviyeleri arasında kod büyüklüğü bakımından ciddi bir farklılık oluşmamıştır. 6. İşlemci Tipine Özel Optimizasyonların Performansa Etkisi İşlemcilerin hızlanması ile derleyicilerin öneminin azalacağı düşünülmesine rağmen işlemci performansının tam olarak kullanılabilmesi için derleyicilerin önemi daha da artmıştır. İşlemcinin verimi birim zamanda kendisine beslenen komut sayısı ile bağlantılı olduğundan işlemcinin performansı yeterince hızlı komut beslenememesi durumunda düşebilir. Derleyicilerin ana hedefi işlemciye mümkün olan en yüksek hızda komut akışını sağlamaktır. Yapılacak optimizasyonlar kullanılan işlemcinin mimarisi ile doğrudan bağlantılıdır[3]. Bu nedenle derleyici seçeneklerinde her işlemci ailesine özel bazı seçenekler vardır. Bu seçeneklerin bazıları otomatik aktive edilmesine rağmen bazıları kullanıcı tarafından aktive edilmelidir. İşlemciye özel derleyici seçeneklerinin PPC603e işlemcisi üzerinde koşan gerçek zamanlı Servo Kontrol yazılım üzerindeki etkisini incelemek amacıyla alınan ölçümler Tablo 5 te verilmiştir. Tablo 5 te sadece performansa etkisi olan seçeneklere ait ölçümler verilmiştir. Alınan ölçümlerin PPC603e işlemcisi için alınması nedeniyle Tablo 5 de verilmeyen seçeneklerin diğer işlemci ailelerinde etkisi olabileceği unutulmamalıdır. Tablo 5 İşlemci Tipine Özel Optimizasyonların Performansa Etkisi Bayrak Performans Artışı(%)

5 -msoft-float -181,71 -mmultiple 9,2 -mstring 3,8 -mlongcall -3,5 Bazı işlemciler aynı anda birden fazla veriyi yazmaçlara yükleyebilmektedir. Bu özelliğin aktive edilmesi için derleyici bayraklarının uygun şekilde ayarlanması gereklidir. Alınan ölçümler sonucunda birden fazla veriyi mmultiple seçeneği ile aynı anda yazmaçlara yüklemenin performansı %9.2 arttırdığı görülmüştür. Bazı matematiksel işlemler için işlemci donanım desteği sağlamaktadır. Ancak derleyicinin bir seçeneği ile bu destek kullanılmayabilir. Bu matematiksel işlemlerin -msoft-float seçeneği ile yazılımsal olarak yapılması sonucunda yazılımının performansında ciddi miktarda(%181) düşme olmaktadır. Kullanılan işlemcinin dizgi (string) yüklemek ve kaydetmek için özel komutunun kullanılmasının sağlanması(-mstring) %3.8 performans artışı sağlamıştır. Derleyicinin 32 bitlik adres uzayında bulunan fonksiyonların çağrılabilmesi için sunduğu seçeneğin aktive edilmesi(-mlongcall) performansta %3.5 lik bir düşüşe neden olmuştur. 7. Sonuç Derleyicilerin yaptığı optimizasyonların performansının kodlama tarzına çok bağlı olduğu belirtilmiştir[2][11]. Bu nedenle kodlama yaparken derleyici dostu kod yazmak için özen göstermek derleyiciden en yüksek verimi almak ve yazılımın performansını yükseltmek için önemlidir. Günümüzde yazılım parçalarının yeniden kullanılabilirliğini ve yazılım kalitesini arttırabilmek için nesne yönelimli programlama dillerinin gömülü yazılımlarda kullanımı yaygınlaşmıştır. Nesne yönelimli diller ile geliştirme yaparken derleyicilerin bu diller ile ilgili sunduğu seçenekler dikkatle incelenmelidir. Özellikle C++ diline özgü bayrakların yazılımın zamanlamasına etkisi çok büyük olduğundan dikkatli kullanılması gereklidir. Yazılım içerisinde kullanılmayan C++ dili yeteneklerinin derleyici seçenekleri ile derleyici tarafında da etkinliğinin kaldırılması yazılımın çalışma performansı açısından fayda sağlayacaktır. Derleyicinin kaynak koddan makine koduna geçiş aşamasında sunduğu seçenekler yazılımın akışını değiştirebilmektedir. Bu seçeneklerden kod akışını değiştiren en önemli bayraklardan birisi -fvolatile bayrağıdır. Bu bayrak kullanılmadığı durumda optimizasyon sırasında kod akışı değişebilmektedir. Bu konuda dikkatli olunması gereklidir. Genel optimizasyon seçenekleri bir grup halinde optimizasyon seçeneklerini aktive etmek açısından çok büyük avantaj sağlamaktadır. Alınan ölçümlerde optimizasyon seviyeleri arasında performans farkı görülmemesine rağmen bu optimizasyonların performansının yazılımın yapısında bağlı olduğu ve farklı yazılımlarda farklı sonuçlar alınabileceği unutulmamalıdır. İşlemci tipine özel optimizasyon seçenekleri işlemci mimarisini en verimli şekilde kullanmayı sağlamaktadır. Yeniden kullanılabilir yazılım parçaları geliştirmenin önemli olduğu günümüzde donanıma özel optimizasyonlar kaynak kod seviyesinde yapılamamasından dolayı bu optimizasyonların derleyiciler tarafından gerçekleştirilmesi gerekmektedir. Yapılan çalışma sonucunda gerçek zamanlı gömülü yazılımlarda derleyici bayraklarının etkin kullanımının yazılım performansının arttırılmasının yanında yeniden kullanılabilir yazılım parçalarının geliştirilmesinde de önemli olduğu gözlenmiştir. Derleyici yeteneklerinin etkin kullanımı ile kaynak kod seviyesinde çözülmeye çalışılan birçok problem derleme aşamasında çözülebilmekte ve bu sayede yazılım geliştirme maliyeti düşürülebilmektedir. 8. Kaynaklar [1] Windriver, Advanced Compiler Optimization Techniques White paper [2] Engblom, J., Getting the Least Out of Your C Compiler, Embedded System Conference 2001 [3] Karsh, B., Understanding the PowerPC Architecture, MacTech Vol 10, Issue 8 [4] Motorola, MPC8245 Integrated Processor User s Manual Rev 1,2001 [5] Windriver, GNU Toolkit User's Guide For PowerPC, Edition 1 [6] Gough B., An Introduction to GCC,2004, Network Theory Ltd, 2004 [7] van der Pas R., Memory Hierarchy in Cache Based Systems, Sun Microsystems, Inc,2002 [8] Vanderwiel S. P., Lilja D.J., Data Prefetch Mechanisms, ACM Computing Surveys, Vol. 32, No. 2, June 2000 [9] Zhang Y., Haga S., Barua R., Execution History Guided Instruction Prefetching, ICS 02, June 22-26,2002,New York, [10] Conte T.M., Menezes K.N, Mills P.M., Patel B.A., Optimization of Instruction Fetch Mechanisms for High Issue Rates, ISCA 95, Santa Magherita Ligure Italy [11] Fog A., Optimizing software in C++, Copenhagen University College of Engineering 2007

6

PROGRAMLAMAYA GİRİŞ DERS 2

PROGRAMLAMAYA GİRİŞ DERS 2 PROGRAMLAMAYA GİRİŞ DERS 2 Program editörde oluşturulur ve diske kaydedilir Tipik Bir C Programı Geliştirme Ortamının Temelleri 1. Edit 2. Preprocess 3. Compile 4. Link 5. Load 6. Execute Önişlemci programı

Detaylı

Java Temel Özellikleri

Java Temel Özellikleri Java Temel Özellikleri Java Programlama Dili Java programlama dili şu anda dünyadaki en popüler programlama dillerinden biri haline gelmiştir. Java SUN bilgisayar şirketince elektrikli ev aletlerinin birbiriyle

Detaylı

5. PROGRAMLA DİLLERİ. 5.1 Giriş

5. PROGRAMLA DİLLERİ. 5.1 Giriş 5. PROGRAMLA DİLLERİ 8.1 Giriş 8.2 Yazılım Geliştirme Süreci 8.3 Yazılım Geliştirme Sürecinde Programlama Dilinin Önemi 8.4 Programlama Dillerinin Tarihçesi 8.5 Programlama Dillerinin Sınıflandırılması

Detaylı

ELN1001 BİLGİSAYAR PROGRAMLAMA I

ELN1001 BİLGİSAYAR PROGRAMLAMA I ELN1001 BİLGİSAYAR PROGRAMLAMA I DEPOLAMA SINIFLARI DEĞİŞKEN MENZİLLERİ YİNELEMELİ FONKSİYONLAR Depolama Sınıfları Tanıtıcılar için şu ana kadar görülmüş olan özellikler: Ad Tip Boyut Değer Bunlara ilave

Detaylı

C Dersi Bölüm 1. Bilgisayar Donanımı

C Dersi Bölüm 1. Bilgisayar Donanımı C Dersi Bölüm 1 M Bodur 1 Bilgisayar Donanımı Bilgisayarın yapısını ve çalışma prensiplerini bilmemiz Bir bilgisayar programından neler bekleyebileceğimizi anlamamızı sağlar. Bigisayar dört temel birimden

Detaylı

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Bilgisayar Programlama Ders 6 Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Fonksiyon Prototipleri Fonksiyon Prototipleri Derleyici, fonksiyonların ilk hallerini (prototiplerini)

Detaylı

Programlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1

Programlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1 Programlama Dilleri C Dili Programlama Dilleri-ders02/ 1 Değişkenler, Sabitler ve Operatörler Değişkenler (variables) bellekte bilginin saklandığı gözlere verilen simgesel isimlerdir. Sabitler (constants)

Detaylı

İLERI MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

İLERI MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı İLERI MIKRODENETLEYICILER Ege Üniversitesi Ege MYO Mekatronik Programı EK-A IDE, Program Geliştirme Araçları Geliştirme Araçları Keil C51 Yazılımı Geliştirme Araçları ISIS Programı ISIS/Proteus programı:

Detaylı

Bilgisayarda Programlama. Temel Kavramlar

Bilgisayarda Programlama. Temel Kavramlar Bilgisayarda Programlama Temel Kavramlar KAVRAMLAR Programlama, yaşadığımız gerçek dünyadaki problemlere ilişkin çözümlerin bilgisayarın anlayabileceği bir biçime dönüştürülmesi / ifade edilmesidir. Bunu

Detaylı

Yazılım Çeşitleri. Uygulama Yazılımları. İşletim Sistemleri. Donanım

Yazılım Çeşitleri. Uygulama Yazılımları. İşletim Sistemleri. Donanım Yazılım Yazılım Bilgisayarlar üretildikleri anda içlerinde herhangi bir bilgi barındırmadıkları için bir işlevleri yoktur. Bilgisayarlara belirli yazılımlar yüklenerek işlem yapabilecek hale getirilirler.

Detaylı

Özyineleme (Recursion)

Özyineleme (Recursion) C PROGRAMLAMA Özyineleme (Recursion) Bir fonksiyonun kendisini çağırarak çözüme gitmesine özyineleme (recursion), böyle çalışan fonksiyonlara da özyinelemeli (recursive) fonksiyonlar denilir. Özyineleme,

Detaylı

Programlama Dilleri 1. Ders 12: Belirleyiciler ve Niteleyiciler

Programlama Dilleri 1. Ders 12: Belirleyiciler ve Niteleyiciler Programlama Dilleri 1 Ders 12: Belirleyiciler ve Niteleyiciler Genel Bakış Giriş Yer Belirleyicilerle Bildirim İşlemi auto Belirleyicisi register Belirleyicisi static Belirleyicisi Statik ve Global Değişkenlerin

Detaylı

Pointers (İşaretçiler)

Pointers (İşaretçiler) Pointers (İşaretçiler) Pointers (İşaretçiler) Verilerin bilgisayar hafızasında tutulduğu fiziki alan adres olarak tanımlanabilir. Adres, hem donanımla hem de yazılımla ile ilişkilidir. Donanımsal açıdan

Detaylı

Bitirme Ödevi Sunumu PLATFORM BAĞIMSIZ BENZETİM PROGRAMI. Danışman : Yrd.Doç.Dr. D Feza BUZLUCA Gökhan Akın ŞEKER

Bitirme Ödevi Sunumu PLATFORM BAĞIMSIZ BENZETİM PROGRAMI. Danışman : Yrd.Doç.Dr. D Feza BUZLUCA Gökhan Akın ŞEKER Bitirme Ödevi Sunumu BERKELEY RISC I işlemcisi İÇİN PLATFORM BAĞIMSIZ BENZETİM PROGRAMI Danışman : Yrd.Doç.Dr. D Feza BUZLUCA 0495 0639 Sunum Planı Ödev konusu hakkında Berkeley RISC I işlemcisi hakkında

Detaylı

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) { Fonksiyonlar Kendi içinde bağımsız olarak çalışabilen ve belli bir işlevi yerine getiren program modülleridir. C programları bu modüllerden (fonksiyonlar) oluşurlar. Fonksiyonların yazılmasındaki temel

Detaylı

1.1. Yazılım Geliştirme Süreci

1.1. Yazılım Geliştirme Süreci Kazanımlar Bu bolümde; Yazılım geliştirme sureci konusunda bilgi sahibi olacak, Yazılım geliştirme surecinde gerekli olan araçları tanıyacak, Python dilinde program geliştirme ortamlarını inceleyebileceksiniz.

Detaylı

Bit, Byte ve Integer. BIL-304: Bilgisayar Mimarisi. Dersi veren öğretim üyesi: Yrd. Doç. Dr. Fatih Gökçe

Bit, Byte ve Integer. BIL-304: Bilgisayar Mimarisi. Dersi veren öğretim üyesi: Yrd. Doç. Dr. Fatih Gökçe Bit, Byte ve Integer BIL-304: Bilgisayar Mimarisi Dersi veren öğretim üyesi: Yrd. Doç. Dr. Fatih Gökçe Ders kitabına ait sunum dosyalarından adapte edilmiştir: http://csapp.cs.cmu.edu/ Adapted from slides

Detaylı

Demodülasyon Algoritmaları İçin En İyilenmiş Windows İşletim Sistemi Uygulamaları

Demodülasyon Algoritmaları İçin En İyilenmiş Windows İşletim Sistemi Uygulamaları Demodülasyon Algoritmaları İçin En İyilenmiş Windows İşletim Sistemi Uygulamaları Alparslan Fişne afisne@aselsan.com.tr 1/46 1 İçerik Giriş Demodülasyon Algoritmaları Optimizasyon JNI Kullanımı Sonuçlar

Detaylı

İŞLETİM SİSTEMİ İşletim sistemi kullanıcıyla bilgisayar donanımı arasında iletişim sağlayan programdır.

İŞLETİM SİSTEMİ İşletim sistemi kullanıcıyla bilgisayar donanımı arasında iletişim sağlayan programdır. İŞLETİM SİSTEMİ İşletim sistemi kullanıcıyla bilgisayar donanımı arasında iletişim sağlayan programdır. Programların ve donanımların kullanılması için bir çalıştırılması platformu oluşturur. Sistemin yazılım

Detaylı

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi 1 BM-311 Bilgisayar Mimarisi Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Giriş Komut çalıştırma özellikleri Büyük register file kullanımı Compiler tabanlı register

Detaylı

Göstericiler (Pointers)

Göstericiler (Pointers) C PROGRAMLAMA Göstericiler (Pointers) C programlama dilinin en güçlü özelliklerinden biridir. Göstericiler, işaretçiler yada pointer adı da verilmektedir. Gösterici (pointer); içerisinde bellek adresi

Detaylı

Bit, Byte ve Integer. BIL-304: Bilgisayar Mimarisi. Dersi veren öğretim üyesi: Yrd. Doç. Dr. Fatih Gökçe

Bit, Byte ve Integer. BIL-304: Bilgisayar Mimarisi. Dersi veren öğretim üyesi: Yrd. Doç. Dr. Fatih Gökçe Bit, Byte ve Integer BIL-304: Bilgisayar Mimarisi Dersi veren öğretim üyesi: Yrd. Doç. Dr. Fatih Gökçe Ders kitabına ait sunum dosyalarından adapte edilmiştir: http://csapp.cs.cmu.edu/ Adapted from slides

Detaylı

KONTROL VE OTOMASYON KULÜBÜ

KONTROL VE OTOMASYON KULÜBÜ KONTROL VE OTOMASYON KULÜBÜ C DİLİ İLE MİKROKONTROLÖR PROGRAMLAMA EĞİTİMİ Serhat Büyükçolak Ahmet Sakallı 2009-2010 Güz Dönemi Eğitimleri Mikrokontrolör Gömülü sistemlerin bir alt dalı olan mikrokontrolör

Detaylı

Bit, Byte ve Integer. BIL-304: Bilgisayar Mimarisi. Dersi veren öğretim üyesi: Dr. Öğr. Üyesi Fatih Gökçe

Bit, Byte ve Integer. BIL-304: Bilgisayar Mimarisi. Dersi veren öğretim üyesi: Dr. Öğr. Üyesi Fatih Gökçe Bit, Byte ve Integer BIL-304: Bilgisayar Mimarisi Dersi veren öğretim üyesi: Dr. Öğr. Üyesi Fatih Gökçe Ders kitabına ait sunum dosyalarından adapte edilmiştir: http://csapp.cs.cmu.edu/ Adapted from slides

Detaylı

ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ. Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ. Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü Konular Giriş math Kütüphane Fonksiyonları Çok Parametreyle Fonksiyon

Detaylı

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi 1 BM-311 Bilgisayar Mimarisi Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Processor organization Register organization Instruction cycle 2 Processor organization İşlemci

Detaylı

MAK 1005 Bilgisayar Programlamaya Giriş C DİLİNE GİRİŞ. Prof. Dr. Necmettin Kaya

MAK 1005 Bilgisayar Programlamaya Giriş C DİLİNE GİRİŞ. Prof. Dr. Necmettin Kaya MAK 1005 Bilgisayar Programlamaya Giriş C DİLİNE GİRİŞ Prof. Dr. Necmettin Kaya C PROGRAMLAMA DİLİ ÖZELLİKLERİ C programlama dili, 1972 yılında Bell Labortuvarı nda Dennis Ritchie tarafından geliştirilmiştir.

Detaylı

Genel Kullanılış 1: [değişken ismi] = [değişken ismi] [işlem] [sayı veya string ifade veya değişken]

Genel Kullanılış 1: [değişken ismi] = [değişken ismi] [işlem] [sayı veya string ifade veya değişken] Sayaçlar Düzenli olarak artan (+) veya azalan (-) sayı veya string ifadeler elde etmek için kullanılırlar. Eşitliğin her iki tarafındaki değişken isminin aynı olmasına dikkat edin. Bu durum matematik olarak

Detaylı

C Programlama Dilinde Değişkenler

C Programlama Dilinde Değişkenler C Programlama Dilinde Değişkenler Değişkenler bir programlama dilinin en önemli bileşenlerindendir. En basit bir aritmetik işlemin bile kullanıcının girdiği değerleri saklamak için çeşitlik bellek alanlarına

Detaylı

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi Bil101 Bilgisayar Yazılımı I Bilgisayar Yüksek Mühendisi Editör Disk 1)Kaynak kodlar editör aracılığı ile oluşturulur. (.c) Kaynak dosya Önişleyici Disk 2)Önişleyici kodlar içerisindeki ilk işleme işini

Detaylı

Yazılım Mimari Tasarımından Yazılım Geliştirme Çatısının Üretilmesinde Model Güdümlü Bir Yaklaşım

Yazılım Mimari Tasarımından Yazılım Geliştirme Çatısının Üretilmesinde Model Güdümlü Bir Yaklaşım Yazılım Mimari Tasarımından Yazılım Geliştirme Çatısının Üretilmesinde Model Güdümlü Bir Yaklaşım İbrahim Onuralp Yiğit 1, Nafiye Kübra Turhan 2, Ahmet Erdinç Yılmaz 3, Bülent Durak 4 1,2,3,4 ASELSAN A.Ş.

Detaylı

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0 Selçuk Üniversitesi, Mühendislik Fakültesi, Harita Mühendisliği Bölümü Bitirme Sınavı Test Soruları Adı soyadı : Öğrenci no : Sınav tarihi : 01.06.2017 Süre : 60 dak. 1. t değişkeni hakkında aşağıdakilerden

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Giriş Fonksiyonlara Genel Bakış C

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Giriş Fonksiyonlara Genel Bakış C ve Fonksiyonlar Fonksiyon Tanımı 8. BÖLÜM 3 Fonksiyonlar

Detaylı

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1 Görsel Programlama DERS 03 Görsel Programlama - Ders03/ 1 Java Dili, Veri Tipleri ve Operatörleri İlkel(primitive) Veri Tipleri İLKEL TİP boolean byte short int long float double char void BOYUTU 1 bit

Detaylı

Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi

Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları Veri yapısı, bilginin anlamlı sırada bellekte veya disk, çubuk bellek gibi saklama birimlerinde tutulması veya saklanması şeklini gösterir. Bilgisayar

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java Veri Tipleri ve Özelilkleri Değişken Tanımlama Kuralları Değişken Veri Tipi Değiştirme (Type Casting) Örnek Kodlar Java Veri Tipleri ve Özelilkleri

Detaylı

Yazılım Mühendisliğine Giriş 4. Hafta 2016 GÜZ

Yazılım Mühendisliğine Giriş 4. Hafta 2016 GÜZ Yazılım Mühendisliğine Giriş 4. Hafta 2016 GÜZ 1 İkinci Kuşak Bilgisayarlar 1956-1963: Transistor Transistor 1947 yılında keşfedilmiştir. 50 li yılların sonuna kadar bilgisayarlarda yaygın kullanımı görülmez.

Detaylı

Bahar Dönemi. Öğr.Gör. Vedat MARTTİN

Bahar Dönemi. Öğr.Gör. Vedat MARTTİN Bahar Dönemi Öğr.Gör. Vedat MARTTİN 8086/8088 MİKROİŞLEMCİSİ İÇ MİMARİSİ Şekilde x86 ailesinin 16-bit çekirdek mimarisinin basitleştirilmiş bir gösterimi verilmiştir. Mikroişlemci temel iki ayrı çalışma

Detaylı

Bit, Byte ve Integer. BIL-304: Bilgisayar Mimarisi. Dersi veren öğretim üyesi: Yrd. Doç. Dr. Fatih Gökçe

Bit, Byte ve Integer. BIL-304: Bilgisayar Mimarisi. Dersi veren öğretim üyesi: Yrd. Doç. Dr. Fatih Gökçe Bit, Byte ve Integer BIL-304: Bilgisayar Mimarisi Dersi veren öğretim üyesi: Yrd. Doç. Dr. Fatih Gökçe Ders kitabına ait sunum dosyalarından adapte edilmiştir: http://csapp.cs.cmu.edu/ Adapted from slides

Detaylı

3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler

3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler Veri Tanımları ve Mantıksal Đşlemler Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Kullanılacak bütün değişkenlerin kullanılmadan önce C derleyicisine bildirilmeleri gerekir.

Detaylı

Yazılım Mühendisliğine Giriş 2018 GÜZ

Yazılım Mühendisliğine Giriş 2018 GÜZ Yazılım Mühendisliğine Giriş 2018 GÜZ İkinci Kuşak Bilgisayarlar -1956-1963 Transistör 1947 yılında keşfedilmiştir. 50 li yılların sonuna kadar bilgisayarlarda yaygın kullanımı görülmez. Vakum tüplere

Detaylı

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-8 Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-8 Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri BLM-111 PROGRAMLAMA DİLLERİ I Ders-8 Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Temel Veri Tipleri C dilinde

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları SABİTLER VE DEĞİŞKENLER Değişken, verilerin bellekte geçici olarak kaydedilmesini ve gerektiğinde kullanılmasını sağlayan değerdir. Nesne tabanlı programlama dilinde değişken kullanımı diğer programlama

Detaylı

Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları

Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları 8- Turbo Pascal Programlama İle Dosya İşlemleri Dosya işlemleri bilgisayar programlamada verilerin tekrar kullanılması açısından çok önemlidir. Yazılan bilgisayar programlarında elde edilen sonuçlar eğer

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA DİLİ Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java Programlama Diline Giriş Java Platform Çeşitleri Java nın Kodlama ve Çalışma Adımları Java Derleyicisi, Java Yorumlayıcısı Java Çöp Toplayıcısı

Detaylı

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi 1 BM-311 Bilgisayar Mimarisi Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Giriş Donanım performans kriterleri Eş zamanlı çalışma Güç tüketimi Yazılım performans kriterleri

Detaylı

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi 1 BM-311 Bilgisayar Mimarisi Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Operand türleri Assembly dili 2 İşlemcinin yapacağı iş makine komutlarıyla belirlenir. İşlemcinin

Detaylı

BİLGİSAYAR ORGANİZASYONU

BİLGİSAYAR ORGANİZASYONU BİLGİSAYAR ORGANİZASYONU Donanım Bilgisayarın fiziksel bölümü Monitor, klavye, fare Entegreler, kartlar Kablolar Yazılım: Bilgisayarın mantıksal bölümü Programlar: Bilgisayarın gerçekleştireceği komutlar

Detaylı

INTERNET ARACILIĞIYLA UZAK BİRİMDEKİ DSP KİTİNE VERİ İLETİMİ

INTERNET ARACILIĞIYLA UZAK BİRİMDEKİ DSP KİTİNE VERİ İLETİMİ INTERNET ARACILIĞIYLA UZAK BİRİMDEKİ DSP KİTİNE VERİ İLETİMİ Nurşen Suçsuz 1 Deniz Taşkın 2 1 Öğr. Üyesi. Trakya Üniversitesi,Bilgisayar Mühendisliği Bölümü 22030 Edirne nursen@trakya.edu.tr 2 Ar. Gör.

Detaylı

MTK467 Nesneye Yönelik Programlama. Hafta 4 - Döngüler Zümra Kavafoğlu https://zumrakavafoglu.github.io/

MTK467 Nesneye Yönelik Programlama. Hafta 4 - Döngüler Zümra Kavafoğlu https://zumrakavafoglu.github.io/ MTK467 Nesneye Yönelik Programlama Hafta 4 - Döngüler Zümra Kavafoğlu https://zumrakavafoglu.github.io/ while döngüsü while(koşul){ } döngü ifadeleri Koşul boolean değerli olmalıdır. Koşulun değeri true

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN Hafıza Yapısı Bir değişken tanımlandığında arka planda bilgisayarın hafızasında bir konuma yerleştirilir. Hafıza küçük hücrelerden oluşmuş bir blok olarak düşünülebilir. Bir değişken

Detaylı

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız. 1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız. [10 puan] int param = 30; int result = 300; if (param > 45) result

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN Diziler ile Pointer Arası İlişki Bir dizi adı sabit bir pointer gibi düşünülebilir. Diziler ile pointer lar yakından ilişkilidir. Pointer lar değişkenleri gösterdikleri gibi,

Detaylı

Pointer Kavramı. Veri Yapıları

Pointer Kavramı. Veri Yapıları Pointer Kavramı Veri Yapıları Pointer Kavramı- Pointer Nedir? Göstericiler, işaretçiler ya da pointer adı da verilmektedir. Gösterici (pointer); içerisinde bellek adresi tutan değişkenlerdir. Şu ana kadar

Detaylı

Veritabanı. Ders 2 VERİTABANI

Veritabanı. Ders 2 VERİTABANI Veritabanı Veritabanı Nedir? Birbiri ile ilişkili verilerin bir arada uzun süreli bulundurulmasıdır. Veritabanı bazen Veritabanı Yönetim sistemi veya Veritabanı Sistemi yerine de kullanılır. Gerçek dünyanın

Detaylı

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-3 İşaretçiler (Pointer) (Kısım-2)

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-3 İşaretçiler (Pointer) (Kısım-2) BLM-112 PROGRAMLAMA DİLLERİ II Ders-3 İşaretçiler (Pointer) (Kısım-2) Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Dinamik Bellek Yönetimi Bir program çalıştırıldığında

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi 2. BÖLÜM 2 PROGRAMLAMAYA GİRİŞ Programlama Terimleri ve Programlama Ortamı 3 Program Programlama IDE

Detaylı

BİL-142 Bilgisayar Programlama II

BİL-142 Bilgisayar Programlama II BİL-142 Bilgisayar Programlama II (C/C++) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Giriş math Kütüphane Fonksiyonları Çok Parametreyle Fonksiyon Tanımı Fonksiyon

Detaylı

C#(Sharp) Programlama Dili

C#(Sharp) Programlama Dili Değişkenler C#(Sharp) Programlama Dili Program yazarken her zaman sabit verilerle çalışmayız, çoğu zaman programımızda bir verinin kullanıcının davranışına göre değişmesi gerekir. Kullanıcıdan bir metin

Detaylı

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ Ders 10 LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ LINUX de Programlama LINUX işletim sistemi zengin bir programlama ortamı sağlar. Kullanıcılara sistemi geliştirme olanağı sağlar.

Detaylı

PROGRAMLAMA DİLLERİ. Programlama Dilleri Programlama Dillerinin Önemi Dilleri Sınıflandırılması Anlambilim BNF Notasyonu Kontrol Deyimleri

PROGRAMLAMA DİLLERİ. Programlama Dilleri Programlama Dillerinin Önemi Dilleri Sınıflandırılması Anlambilim BNF Notasyonu Kontrol Deyimleri PROGRAMLAMA DİLLERİ Program Yazılım Geliştirme Süreci Programlama Dilleri Tarihçesi Kod Sözdizimi Nesneye Yönelik Programlama Tür Kontrolü Alt Programlar Programlama Dilleri Programlama Dillerinin Önemi

Detaylı

Öğr. Gör. Musa AYDIN Fatih Sultan Mehmet Vakıf Üniversitesi

Öğr. Gör. Musa AYDIN Fatih Sultan Mehmet Vakıf Üniversitesi Öğr. Gör. Musa AYDIN Fatih Sultan Mehmet Vakıf Üniversitesi İÇİNDEKİLER Değişken Nedir? Değişken kullanımı faydaları. Değişken türleri Değişken görünürlüğü (scope) Değişken türleri arası dönüşümler Örnek

Detaylı

Değişkenler tanımlanırken onlara ne tür veriler atanabileceği de belirtilir. Temel veri türleri oldukça azdır:

Değişkenler tanımlanırken onlara ne tür veriler atanabileceği de belirtilir. Temel veri türleri oldukça azdır: C VERİ TÜRLERİ BASİT VERİ TÜRLERİ Değişkenler, program içinde üzerinde işlem yapılan, veri saklanan ve durumlarına göre programın akışı sağlanan nesnelerdir. C de bir değişken kullanılmadan önce tanımlanmalıdır.

Detaylı

Bilgisayar Mühendisliğine Giriş

Bilgisayar Mühendisliğine Giriş Bilgisayar Mühendisliğine Giriş Bilim İnsanı Bilgi Yaratır Dünyayı Olduğu Gibi Kabul Eder Bilimsel Yöntemle eğitilir Açık bilgiyi kullanır Düşünürler Mühendis Bu Bilgiyi Uygular Dünyayı Değiştirmek için

Detaylı

GÖMÜLÜ YAZILIMLARDA ÇOK AMAÇLI GRAFİK ARAYÜZÜ: VISION GDI

GÖMÜLÜ YAZILIMLARDA ÇOK AMAÇLI GRAFİK ARAYÜZÜ: VISION GDI GÖMÜLÜ YAZILIMLARDA ÇOK AMAÇLI GRAFİK ARAYÜZÜ: VISION GDI Soner ÇINAR 1,Merve Özkardeş 1, Recep Bora ÇALIŞKANBAŞ 1, Burak ÜNALTAY 1 1 Gömülü ve Gerçek Zamanlı Yazılım Tasarım Müdürlüğü, SST Sektör Bşk.

Detaylı

T.C. MALTEPE ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ YAZILIM MÜHENDİSLİĞİ LİSANS PROGRAMI. 2011-12 Bahar Yarıyılı

T.C. MALTEPE ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ YAZILIM MÜHENDİSLİĞİ LİSANS PROGRAMI. 2011-12 Bahar Yarıyılı T.C. MALTEPE ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ YAZILIM MÜHENDİSLİĞİ LİSANS PROGRAMI 2011-12 Bahar Yarıyılı ALGORİTMA VE PROGRAMLAMA BİL 133 5 AKTS Kredisi 1. yıl 1. yarıyıl Lisans Zorunlu 4 saat/hafta

Detaylı

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say İÇİNDEKİLER 1. Bilgisayarın Yapısı Ve Programlama Dilleri Giriş 1 Bilgisayar ve Programlamanın Kısa Bir Tarihçesi 2 Donanım ve Yazılım Kavramları 3 Bilgisayarın Donanımsal yapısı 4 Giriş Birimi (Input

Detaylı

William Stallings Computer Organization and Architecture 9 th Edition

William Stallings Computer Organization and Architecture 9 th Edition William Stallings Computer Organization and Architecture 9 th Edition Bölüm 5 İç Hafıza Bir Hafıza Hücresinin Çalışması Bütün hafıza hücrelerinin ortak özellikleri vardır: 0 ve 1 durumundan birini gösterirler

Detaylı

İşletim Sistemi. BTEP205 - İşletim Sistemleri

İşletim Sistemi. BTEP205 - İşletim Sistemleri İşletim Sistemi 2 İşletim sistemi (Operating System-OS), bilgisayar kullanıcısı ile bilgisayarı oluşturan donanım arasındaki iletişimi sağlayan ve uygulama programlarını çalıştırmaktan sorumlu olan sistem

Detaylı

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay. PROGRAMLAMAYA GİRİŞ Öğr. Gör. Ayhan KOÇ Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay., 2007 Algoritma ve Programlamaya Giriş, Ebubekir YAŞAR, Murathan Yay., 2011

Detaylı

Bit, Byte ve Integer. BIL-304: Bilgisayar Mimarisi. Dersi veren öğretim üyesi: Dr. Öğr. Üyesi Fatih Gökçe

Bit, Byte ve Integer. BIL-304: Bilgisayar Mimarisi. Dersi veren öğretim üyesi: Dr. Öğr. Üyesi Fatih Gökçe Bit, Byte ve Integer BIL-304: Bilgisayar Mimarisi Dersi veren öğretim üyesi: Dr. Öğr. Üyesi Fatih Gökçe Ders kitabına ait sunum dosyalarından adapte edilmiştir: http://csapp.cs.cmu.edu/ Adapted from slides

Detaylı

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI İÇİNDEKİLER IX İÇİNDEKİLER 1 GİRİŞ 1 Kitabın Amacı 1 Algoritmanın Önemi 2 Bilgisayarın Doğuşu ve Kullanım Amaçları 3 Programlama Dili Nedir? 3 Entegre Geliştirme Ortamı (IDE) Nedir? 4 2 ALGORİTMA VE AKIŞ

Detaylı

Diziler İndisli Değişkenler

Diziler İndisli Değişkenler Diziler İndisli Değişkenler Aynı tür bilgileri (öğrenci isimleri, şehir isimleri, kapı numaraları, fakülteler vbg.) bellekte tutmak için kullanabileceğimiz listelere dizi adı verilir. Dizi kullanmanın

Detaylı

8. İŞARETCİLER (POINTERS)

8. İŞARETCİLER (POINTERS) 8. İŞARETCİLER (POINTERS) Verilerin bilgisayar hafızasında tutulduğu fiziki alan adres olarak tanımlanabilir. Adres, hem donanımla hem de yazılımla ilişkilidir. Donanımsal açıdan adres bellekte yer gösteren

Detaylı

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler C Programlama Dr. Serkan DİŞLİTAŞ 3.1. Sabitler Sabitler, tanımlanmasıyla birlikte program içerisinde

Detaylı

Teknikleri. Önsöz. iskender atasoy

Teknikleri. Önsöz. iskender atasoy Linux Altı nda Grafik Programlama Teknikleri Önsöz Linux atında yazılım geliştirmeyi düşünüyorsunuz veya geliştiriyorsunuz.artık programlarınızı görsel bileşenler ile süslemek istiyorsanız bu doküman sizlere

Detaylı

Gömülü Sistemler. (Embedded Systems)

Gömülü Sistemler. (Embedded Systems) Gömülü Sistemler (Embedded Systems) Tanım Gömülü Sistem (Embedded System): Programlanabilir bilgisayar içeren fakat kendisi genel amaçlı bilgisayar olmayan her türlü cihazdır. Gömülü Sistem (Embedded System):

Detaylı

PASCAL PROGRAMLAMA DİLİ YAPISI

PASCAL PROGRAMLAMA DİLİ YAPISI BÖLÜM 3 PASCAL PROGRAMLAMA DİLİ YAPISI 3.1. Giriş Bir Pascal programı en genel anlamda üç ayrı kısımdan oluşmuştur. Bu kısımlar bulunmaları gereken sıraya göre aşağıda verilmiştir. Program Başlığı; Tanımlama

Detaylı

BLM 112- Programlama Dilleri II. Hafta 4 İşaretçiler (Pointers)

BLM 112- Programlama Dilleri II. Hafta 4 İşaretçiler (Pointers) 1 BLM 112- Programlama Dilleri II Hafta 4 İşaretçiler (Pointers) Dr. Öğr. Üyesi Caner Özcan İyilik insanları birbirine bağlayan altın zincirdir. ~Goethe Hafıza Yapısı 2 Bir değişken tanımlandığında arka

Detaylı

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while Değişkenler Değişkenler bir bilginin bellekteki konumunu temsil eden sembolik isimlerdir. Bilgisayarda hemen hemen tüm işlemler bellekte yapılır. Program çalıştırıldığında değişken ve bu değişkenin türüne

Detaylı

Sistem Programlama. Kesmeler(Interrupts): Kesme mikro işlemcinin üzerinde çalıştığı koda ara vererek başka bir kodu çalıştırması işlemidir.

Sistem Programlama. Kesmeler(Interrupts): Kesme mikro işlemcinin üzerinde çalıştığı koda ara vererek başka bir kodu çalıştırması işlemidir. Kesmeler(Interrupts): Kesme mikro işlemcinin üzerinde çalıştığı koda ara vererek başka bir kodu çalıştırması işlemidir. Kesmeler çağırılma kaynaklarına göre 3 kısma ayrılırlar: Yazılım kesmeleri Donanım

Detaylı

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak.

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak. Selçuk Üniversitesi Mühendislik Fakültesi Harita Mühendisliği Bölümü ra Sınavı Test Soruları dı soyadı :... Öğrenci no :... İmza :... Tarih, Süre :13.04.2017 60 dak. Dikkat!!! Soru kitapçığında ve cevap

Detaylı

R ile Programlamaya Giriş ve Uygulamalar

R ile Programlamaya Giriş ve Uygulamalar R ile Programlamaya Giriş ve Uygulamalar İçerik R ye genel bakış R dili R nedir, ne değildir? Neden R? Arayüz Çalışma alanı Yardım R ile çalışmak Paketler Veri okuma/yazma İşleme Grafik oluşturma Uygulamalar

Detaylı

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi 1 BM-311 Bilgisayar Mimarisi Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Giriş Donanım performans kriterleri Eş zamanlı çalışma Güç tüketimi Yazılım performans kriterleri

Detaylı

int faktoriyel(int sayi) { int sonuc = 1; for(int i=sayi;i>0;i--) sonuc*=i; return sonuc; } int main() { int sayi = faktoriyel(5); }

int faktoriyel(int sayi) { int sonuc = 1; for(int i=sayi;i>0;i--) sonuc*=i; return sonuc; } int main() { int sayi = faktoriyel(5); } FONKSİYONLAR Fonksiyon, programcı tarafından seçilen bir kod bloğuna isim vermek için kullanılan araçtır. Fonksiyon ismi program içerisinde çağrıldığında fonksiyonun temsil ettiği kod çalıştırılır. Örneğin

Detaylı

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı Öğr. Gör. Cansu AYVAZ GÜVEN NESNE TABANLI PROGRAMLAMA Java Değişkenler ve Veri Tipleri Operatörler JAVA Java Java SUN bilgisayar şirketince

Detaylı

Öğr. Gör. Serkan AKSU http://www.serkanaksu.net. http://www.serkanaksu.net/ 1

Öğr. Gör. Serkan AKSU http://www.serkanaksu.net. http://www.serkanaksu.net/ 1 Öğr. Gör. Serkan AKSU http://www.serkanaksu.net http://www.serkanaksu.net/ 1 JavaScript JavaScript Nedir? Nestcape firması tarafından C dilinden esinlenerek yazılmış, Netscape Navigator 2.0 ile birlikte

Detaylı

2007-2008 Bahar. BM 211 Programlama Dilleri 3 1

2007-2008 Bahar. BM 211 Programlama Dilleri 3 1 Programlama Dilleri III 2007-2008 Bahar BM 211 Programlama Dilleri 3 1 Ders Hakkında Ders Sorumlusu Öğr.Gör. Bora UĞURLU Ders Slaytları İçin http://members.comu.edu.tr/boraugurlu/ Dersle İlgili İletişim

Detaylı

enum bolumler{elektronik, insaat, bilgisayar, makine, gida};

enum bolumler{elektronik, insaat, bilgisayar, makine, gida}; BÖLÜM 12: Giriş C programlama dilinde programcı kendi veri tipini tanımlayabilir. enum Deyimi (Enumeration Constants) Bu tip, değişkenin alabileceği değerlerin belli (sabit) olduğu durumlarda programı

Detaylı

C PROGRAMLAMA D İ L İ

C PROGRAMLAMA D İ L İ C PROGRAMLAMA DİLİ C Programlama Dilinin Temelleri C Programlama Dili'ni popüler kılan önemli nedenler aşağıda listelenmiştir: C, güçlü ve esnek bir dildir. C ile işletim sistemi veya derleyici yazabilir,

Detaylı

MİKROİŞLEMCİ MİMARİLERİ

MİKROİŞLEMCİ MİMARİLERİ MİKROİŞLEMCİ MİMARİLERİ Mikroişlemcilerin yapısı tipik olarak 2 alt sınıfta incelenebilir: Mikroişlemci mimarisi (Komut seti mimarisi), Mikroişlemci organizasyonu (İşlemci mikromimarisi). CISC 1980 lerden

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları Konsol Uygulaması Oluşturma Konsol uygulaması oluşturmak için program açıldıktan sonra Create: Project ya da New Project seçeneği tıklanabilir. New Project penceresini açmak için farklı yollar da vardır.

Detaylı

T.C. ERCİYES ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ EĞİTİM ÖĞRETİM YILI DERS KATALOĞU

T.C. ERCİYES ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ EĞİTİM ÖĞRETİM YILI DERS KATALOĞU T.C. ERCİYES ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ - EĞİTİM ÖĞRETİM YILI DERS KATALOĞU Ders Kodu Bim Kodu Ders Adı Türkçe Ders Adı İngilizce Dersin Dönemi T Snf Açıl.Dönem P

Detaylı

İŞLEMCİLER (CPU) İşlemciler bir cihazdaki tüm girdilerin tabii tutulduğu ve çıkış bilgilerinin üretildiği bölümdür.

İŞLEMCİLER (CPU) İşlemciler bir cihazdaki tüm girdilerin tabii tutulduğu ve çıkış bilgilerinin üretildiği bölümdür. İŞLEMCİLER (CPU) Mikroişlemci Nedir? Mikroişlemci, hafıza ve giriş/çıkış birimlerini bulunduran yapının geneline mikrobilgisayar; CPU' yu bulunduran entegre devre çipine ise mikroişlemci denir. İşlemciler

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları DİZİLER Bellekte ard arda yer alan aynı türden nesneler kümesine dizi (array) denilir. Bir dizi içerisindeki bütün elemanlara aynı isimle ulaşılır. Yani dizideki bütün elemanların isimleri ortaktır. Elemanlar

Detaylı

Bilgisayarların Gelişimi

Bilgisayarların Gelişimi Bilgisayarların Gelişimi Joseph Jacquard (1810) Bilgisayar tabanlı halı dokuma makinesi Delikli Kart (Punch Card) Algoritma ve Programlama 6 Bilgisayar Sistemi 1. Donanım fiziksel aygıtlardır. 2. Yazılım

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Kapsülleme (Erişim Denetleyiciler) Java da Sınıf Oluşturmak Java da Nesne Oluşturmak Java da Constructor Kavramı Java da This Kavramı Java da Constructor

Detaylı

Big Endian & Little Endian K.Atilla Toker İzmir Üniversitesi Meslek Yüksek Okulu Bilgisayar Programcılığı 11-2009 Ver:01

Big Endian & Little Endian K.Atilla Toker İzmir Üniversitesi Meslek Yüksek Okulu Bilgisayar Programcılığı 11-2009 Ver:01 Bilgisayar i Mimarisii i Big Endian & Little Endian K.Atilla Toker İzmir Üniversitesi Meslek Yüksek Okulu Bilgisayar Programcılığı 11-2009 Ver:01 İZMIR ÜNIVERSITESI İZMIR ÜNIVERSITESI MYO BILGISAYAR PROGRAMLAMA

Detaylı

Program Nedir?(1) Programlamaya Giriş

Program Nedir?(1) Programlamaya Giriş Programlamaya Giriş Arş. Gör. Muhammet BAYKARA Program Nedir?(1) Bir program bilgisayara ne yapması gerektiğini söyleyen bir dizi komuttur. Bilgisayarlar işlemlerin kendi anlayacağı dilde (makine dili)

Detaylı