Doç. Dr. Cemil Öz
Algoritmalar ve
Programlama I
Ders 3: PROGRAMLAMA VE
PROGRAMLAMA DİLİ
SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz
Programlama, bir işlemin
dönüştürülmesi işlemidir.
bilgisayarın
anlayabileceği
bir
biçime
Program, bilgisayar sistemine yaptırılmak istenen işlemi özel kodlarla
tanımlayan araç olarak bilinir. Program, bir programlama dili aracılığıyla
hazırlanır.
Kullanılacak programlama dili, çözülecek problemin niteliğine bağlı olarak
seçilebilir. Hangi dilin seçileceğini belirleyen etkenlerin başında, verilerin
işlenmesinde zaman tasarrufu yada komut sayısını sınırlamak olabilir.
Programlama dili, program tasarımında sorulardan biri tasarlanan
çözümlemeye uygun programlama dilini seçmektir. Programlama dilleri,
bilgisayarda çalıştırılmak üzere hazırlanır.
Bir programlama dilinin belirli amaçlara hizmet eden bir çok deyimi vardır
ve bu deyimler özel kodlarla ifade edilir. Programlama dillerinin ortak
özellikleri vardır.
Programlama dillerinin tümü simgesel’dir. Yani, bilgisayarın anlayacağı
işlemleri insanların da anlayabileceği simgelerle ifade ederler. Örneğin
program içinde yer alan write/print komutunun, yazma işlemini yerine
getiren bir komut olduğu hemen anlaşılır. Bu simgeler, özel programlar
yardımıyla bilgisayarın anlayabileceği bir biçime çevrilirler. Bu
programlara derleyici adı verilir
Programın yazımı, kaynak programın geçerli makine diline derleyici
aracılığı ile çevrilmesi için kaynak programın bilgisayar ortamında bir
yazım/editör programı yardımı ile, gerçekleştirilir.
Programım yazımında anlaşılabilirlik ve okunabilirlik önem taşır. Program
yazma, ilk kez yazma veya var olan programı geliştirme şeklinde olabilir.
Programlar çoğunlukla ilk kez yazıldığından sonra üzerinde düzeltme ve
geliştirmeler yapma gerektirir. Bu nedenle, diğer taraftan programlar bir
kez kullanılmak için de hazırlanmaz bir süre sonra programa bakıldığında
anlaşılabilir olma önemli olur. Açıklama satırları eklemek, program işlem
kümelerini, yordamları, yapıları izlenebilir yapıda yazmak sonrada
izlenebilmeye kolaylık sağlar.
Değişkenlere, yordamlara işlev ve görevini anımsatacak isimler vermek,
karar işlemlerini anlaşılır açıklıkta yazmak, okunabilirliğine yardım
edecektir.
Programlama Dillerinin
Sınıflandırılması
Derleyici (Compiler)
 Pascal
 C/C++
 Ada
 Visual Basic.NET
Yorumlayıcı (Interpreter)
 QBasic
 Script (JScript,Tcl/Tk)
 HTML, XML
 PHP
Karışık (Compiler+ Interpreter)
 Java
 C#
5
Yorumlayıcı (Basic, HTML)
Program Kodu
Komut Çöz
Komut Al
Komut Çalıştır
Sonuç
6
Derleyici (C++, Pascal)
Program Kodu
Komut Al
Komut
Çöz
Makina Kodu
Object Code
Komut
Çalıştır
Sonuç
Derleme Zamanı
Çalışma Zamanı
Compile Time
Run Time
7
Derleyici+Yorumlayıcı (C#, Java)
Komut
Çalıştır
Program Kodu
Komut Al
Komut
Çöz
Sanal
Makine
JVM (Java)
CLR (.NET)
Bytecode (Java)
MSIL (C#)
Sonuç
Derleme Zamanı
Çalışma Zamanı
Compile Time
Run Time
8
Dil derleyiciler (compilers), elektronik ortamda disk kütüğü yapısında
hazırlanan kaynak programın işleyebilir makine diline dönüştürülmesi,
kullanılan üst düzey dil için hazırlanmış dil derleyicisi yazılımları ile
gerçekleştirilir. Örneğin, C ve C++ destekleyen Turbo C++, Borland C++,
MS Visual C++ derleyicileri yaygın kullanılan dil derleyicilerindendir.
Derleme: derleme işlemi üst düzey dille hazırlanan kaynak programı
geçerli makine dili içerikli amaç programa dönüştürür. Bu dönüştürme
süreci bir adımda gerçekleşmez. Örneğin C Derleyicisi derleme
(compile), bağlama (linker), yükleme (loader) işlemleri sonunda işleyebilir
amaç programa (makine kodu) dönüşür.
C ve C++ tarihi (History of C and C++)
C’nin tarihi gelişimi
İki programlama dilinden türetilmiştir
○ BCPL and B
 Tip tanımlanması olmayan dillerdir (“Typeless” languages)
 1970 yılların başında Dennis Ritchie (Bell Laboratories
○ Veri tiplerini ve diğer özellikleri eklemiştir(Added data typing,
other features)
 UNIX işletim sisteminin geliştirilmesinde kullanılmıştır
 Donanımdan Bağımsızdır (Hardware independent)
○ Taşınabilir programlar(Portable programs)
 1989: ANSI standard
 1990: ANSI and ISO standard duyuruldu
○ ANSI/ISO 9899: 1990
C ve C++ tarihi (History of C and C++)
C++ Tarihi




C’ nin genişletilmişidir
1980 lerin başında Bjarne Stroustrup (Bell Laboratories)
“Spruces up” C
Nesneye dayalı programlama desteği sunmaktadır
(Provides capabilities for object-oriented programming)
○ Nesneler: Yazılımın yeniden kullanılabilen elemanlarıdır.
 Gerçek dünyadaki modellerin benzerleridir.
○ Nesneye dayalı programlama dilleri(Object-oriented programs)
 Anlaşılması kolay, kolayca çözümlenebilir ve değişiklik yapılabilir
 Karma Diller(Hybrid language)
○ C benzeri
○ Nesneye dayalı
○ Her ikisi
C++ Standard Library

C++ programs
 Sınıflardan ve fonksiyon parçalarından
oluşturulur.

C++ standard library
 Zengin bir sınıf ve fonksiyon topluluğuna
sahiptir.

Program oluşturmak için bloklar
kullanılır.
 Böylece program yeniden kullanılabilir.
Java

Java
 1991: Sun Microsystems
○ Green project
 1995: Sun Microsystems
○ Resmi olarak duyurulmuştur
 Web sayfaları dinamik ve etkileşimli hale getirilmiştir
 Büyük ölçekli uygulamalar gerçekleştirilebilir.
 Web servisleri fonksiyonelliği artırılmıştır.
 Ticari cihazlar için uygulamalar geliştirilebilir olmuştur.
○ Cep telefonları, pagers, personal digital assistants, …
Visual Basic, Visual C++ and C#

BASIC
 Beginner’s All-Purpose Symbolic Instruction Code
 1960 lı yılların ortasında: Prof. John Kemeny and Thomas
Kurtz (Dartmouth College)

Visual Basic
 1991
○ Microsoft Windows grafik arabiriminin geliştirilmesi sonucunda
Microsoft Windows graphical user interface (GUI)
 1990 lı yılların başında geliştirildi.
 Güçlü özellikleri
○ GUI, Olay denetimi(event handling), Win32 API ye erişim (access
to Win32 API), Nesneye dayalı programlama(object-oriented
programming), Hata yönetimi (error handling)
 Visual Basic .NET
Visual Basic, Visual C++ and C#

Visual C++
 C++ Microsoft tarafından geliştirilmiş
○ İlaveler içerir
○ Microsoft Foundation Classes (MFC)
○ Ortak kütüphaneler
 GUI, graphics, networking, multithreading, …
 Kütüphaneler, Visual Basic, Visual C++, C#

.NET platform
 Web tabanlı uygulamalar
○ Yazılım geniş çaplıdır ve çok çeşitli aygıtları kapsar
 Cep telefonu, PDA,desktop computers
Visual Basic, Visual C++ and C#

C#
 Anders Hejlsberg ve Scott Wiltamuth (Microsoft)
 .NET platform platformu için dizayn edilmiştir.
 C, C++ ve Java dan faydalanılmıştır.
 Olay bazlı, Tam nesneye yönelimli(object-oriented), Görsel
programlama dili(visual programming language)
 Entegre yazılım geliştirme Bileşenleri sunar(Integrated
Development Environment -IDE)
○ C# programlarını oluşturabilir, derleyebilir ve çalıştırabilirsiniz
○ Hızlı program geliştirme(Rapid Application Development)
 Diğer programlama dilleri ile iç içe çalışabilme
Yüksek seviyeli diller

FORTRAN
 FORmula TRANslator
 1954-1957: IBM
 Karmaşık matematik denklemlerinin çözümü
○ Bilimsel ve matematiksel problemlerin çözümü

COBOL
 COmmon Business Oriented Language
 1959: computer manufacturers, government and industrial
computer users
 Büyük dataların işlenmesi ve değerlendirilmesinde
kullanılan programlama dili
○ Ticari uygulamalar
Yüksek seviyeli diller

Pascal
 Prof. Niklaus Wirth
 Akademik kullanım
Basics of a Typical C++ Environment
Disk
Program is created in
the editor and stored
on disk.
Preprocessor
Disk
Preprocessor program
processes the code.
Compiler
Disk
Compiler creates
object code and stores
it on disk.
Linker
Disk
Editor
Phases of C++ Programs:
1. Edit
2. Preprocess
3. Compile
4. Link
5. Load
6. Execute
Primary
Memory
Linker links the object
code with the libraries,
creates a.out and
stores it on disk
Loader
Disk
Loader puts program
in memory.
..
..
..
Primary
Memory
CPU
..
..
..
CPU takes each
instruction and
executes it, possibly
storing new data
values as the program
executes.
C/C++ da yazılan programların derlenmesi
Tüm yüksek seviyeli programlar gibi C ve C++ dillerinde de program
yazıldıktan sonra çalıştırılabilmesi için derleyici ile makine diline
çevrilmesi gerekir.
Program ilk olarak bir editörde yazılır. Bu programa kaynak (source)
program ve içindeki kodlara kaynak (source) kodlar denir. Derlendikten
sonra programın makine dilindeki versiyonu nesne (object) program adını
taşır ve .obj uzantılı olur. Derlendikten sonra çalışmaya hazır programın
uzantısı .exe olur ve buna exe programı denir. {execute: yürütme}
Derlenmeden önce kaynak program, sabit diske dosya şeklinde
kaydedilmelidir. Bir çok C++ derleyicisi kaynak programın .cpp (.c)
uzantılı bir dosya olmasını bekler. Örneğin: ornek1.cpp (ornek1.c)
C++ dilinde bir programın oluşturulması, derlenmesi ve çalıştırılması
aşağıdaki iş akış diyagramı ile ifade edilebilir;
Günümüzde en yaygın C/C++ derleyicileri, Turbo C++, Microsoft C++ ve
Borland C++ derleyicileridir.
Ayrıca Visual C++ ve Visual C++’ı içeren Microsoft Visual Studio.NET
derleyicileri konsol (Windows ortamında çalışan DOS programları)
denilen bir çeşidi ile C/C++ programlarını derleyebilmektedir.
Bu derleyiciler program editörü ve derleyicisini bir arada bulundururlar.
. C/C++ da programlama
C/C++ programlama dili, fonksiyon olarak adlandırılan altprogramların
birleştirilmesi kavramına dayanır. Bir C/C++ programı, bir yada daha çok
fonksiyonun bir araya gelmesi ile oluşur.
Bir fonksiyona ait kodlar blok şeklinde iki büyük { } parantez içinde yazılır.
C/C++ programlarında main() özel bir fonksiyondur ve programın
yürütülmesine bu fonksiyon ile başlanır. Her C/C++ programında ana
fonksiyon olan bir tane main() bulunmalıdır.
Bir C++ programının temel yapısı aşağıdaki gibidir;
/* Önişlemci komutları */
/* Genel bildirimler */
main () /* Ana fonksiyon */
{
/* Program kodları */
}
. Örnek C/C++ programı;
#include <stdio.h>
/* Önişlemci komutları */
int n;
/* Genel bildirimler */
void main(void) /* Ana fonksiyon */
{
n=7;
printf("n degeri=%d",n);
}
************************
#include < stdio.h>
void main()
{
printf("\nHello World\n");
}
Hello World
C programlama dili
C yapısal bir programlama dilidir.
Yapısal programlamanın en önemli ayırt edici özelliği
ifadelerden setinden oluşan bloklar ve mantıksal olarak bu
blokların birbirine bağlı olmasıdır.
Bir c programı, boyutu ne olursa olsun, fonksiyonlardan ve
değişkenlerden oluşur.
Bir fonksiyon, özel bir hesaplama işlemini gerçekleştirecek
ifadeler ve hesaplama işlemleri sırasında kullanılan
verilerin saklandığı değişkenlerden oluşur.
C programlama dili
C fonksiyonları, Fortran programlama dilinin fonksiyonları
ve alt programları veya Pascal programlama dilinin
fonksiyonları benzeridir
Verilen örneklerde, fonksiyon olarak main fonksiyonu
görülmektedir. Normalde fonksiyon ismi olarak istenilen
isim verilebilir( c ifadeleri olmamak koşulu ile)
Main fonksiyonu c programları için önem arz eder. Çünkü
main fonksiyonu içerisindeki ifadeler yürütülür. Diğer
fonksiyonlar main fonksiyonu içerisinden çağrılarak
kullanılır.
Yani her C programı bir main foksiyonuna sahip olmak
zorundadır. Main fonksiyonu görevini yerine getirmek için
kullanıcı ve kütüphanelerdeki dosyaları çağırır.
#include < stdio.h>
void main()
{
printf("\nHello World\n");
}
programda ilk satır
#include < stdio.h>
Derleyiciye standart input/output library den bilgi
yüklemesini söyler. Bu satırlar c program kodlarının
başında görülür(kütüphane kavramı üzerinde sonra
durulacaktır).
Fonksiyonlar ile veri iletişimi fonksiyondan sonra
paranntezler içerisinde değerler listesini veya parametre
bileşenlerini vererek sağlanır.
main(parametre listesi)
Bir fonksiyona ait ifadeler kapalı süslü parantezler arasında
verilir. Örneğimizde, sadece main fonksiyonu yer
almaktadır. İçerisinde ise bir ifade bulunur;
printf("\nHello World\n");
Burada printf bir fonksiyondur, "\nHello World\n“
parametredir.
Çift tırnak içerisindeki ifade karakter dizini olarak ifade edilir
ve çift tırnak içinde verilmelidir.
\n ise yeni satır karakteridir. Derleyiciye yeni bir satır
eklemesini söyler.
Fonksiyon(printf) yeni satır ekleme işini otomatik olarak
sağlamaz parametre kullanılmalıdır.
#include < stdio.h>
void main()
{
printf("Hello");
printf(" World");
printf("\n");
}
/* ….*/
Açıklama lar(Comments), kaynak kodun içerisinde /* ile başlayıp */ ile bitmek
kaydı ile istenilen yere yazılabilir ve istenilen karakter dizini olabilir. Bu
açıklamalar derleyici tarafından dikkate alınmazlar. Kodun anlaşılmasında ve
programın büyümesi durumlarında kodun anlaşılmasına yardımcı olur.
; ifadelerden sonra kullanılır.
#include < stdio.h>
void main(){printf("\nHello World\n");}
#include < stdio.h>
void main()
{
printf("\n");
printf("Hello World");
printf("\n");
}
The following program, sine.c, computes a table of the sine function for angles
between 0 and 360 degrees.
Araştırıyorum, öğreniyorum
Değişken, değişken tipi nedir?
 Değişken tiplerine niye ihtiyaç duyulmuş?
 Değişkenlerin yaşam süreleri ne demektir?
 Temel ve türetilmiş veri tipi ne demektir?
 Operatörler çeşitleri ve işlevleri nelerdir?

Download

Programlama dili