22
BİLİMSEL METİN İŞLEME AMAÇLI ALANA ÖZGÜ PROGRAMLAMA DİLİ Erhan Öztürk Natali S. Dimoğlu Gebze Yüksek Teknoloji Enstitüsü AB’2006 Pamukkale Üniversitesi

BİLİMSEL METİN İŞLEME AMAÇLI ALANA ÖZGÜ PROGRAMLAMA DİLİ

  • Upload
    adara

  • View
    102

  • Download
    1

Embed Size (px)

DESCRIPTION

Erhan ÖztürkNatali S. Dimoğlu Gebze Yüksek Teknoloji Enstitüsü. BİLİMSEL METİN İŞLEME AMAÇLI ALANA ÖZGÜ PROGRAMLAMA DİLİ. AB’2006 Pamukkale Üniversitesi. İçerik. Problem Tanımı Alana Özgü Programlama Dilleri Alan Analizi Dil Tasarımı Modelleme Program Üretme Hata Kontrolleri. - PowerPoint PPT Presentation

Citation preview

Page 1: BİLİMSEL METİN İŞLEME AMAÇLI ALANA ÖZGÜ PROGRAMLAMA DİLİ

BİLİMSEL METİN İŞLEME AMAÇLI ALANA ÖZGÜPROGRAMLAMA DİLİ

Erhan Öztürk Natali S. Dimoğlu

Gebze Yüksek Teknoloji Enstitüsü

AB’2006 Pamukkale Üniversitesi

Page 2: BİLİMSEL METİN İŞLEME AMAÇLI ALANA ÖZGÜ PROGRAMLAMA DİLİ

9-11 ŞubatAkademik Bilişim 2006Pamukkale Üniversitesi 2

İçerik

Problem Tanımı Alana Özgü Programlama Dilleri Alan Analizi Dil Tasarımı Modelleme Program Üretme Hata Kontrolleri

Page 3: BİLİMSEL METİN İŞLEME AMAÇLI ALANA ÖZGÜ PROGRAMLAMA DİLİ

9-11 ŞubatAkademik Bilişim 2006Pamukkale Üniversitesi 3

Problem Tanımı

• Bilimsel verilerin ayıklanması ve farklı formatlara çevrilmesi.

• Her çevrim işlemi için farklı bir programa ihtiyaç olması.

• Farklı girdi/çıktı dosyaları için yapılan benzer işlemler.

• Tüm programlar bilimsel alana aittir.

Page 4: BİLİMSEL METİN İŞLEME AMAÇLI ALANA ÖZGÜ PROGRAMLAMA DİLİ

9-11 ŞubatAkademik Bilişim 2006Pamukkale Üniversitesi 4

Önerilen Yaklaşım

Uygulama mantığını, programlama dilinden daha üst düzeye çekmek.

Alana-özgü programlama dili geliştirmek.

Otomatik program üretmek. Bilim adamlarının da kendi

programlarını yazabilmelerini sağlamak.

Page 5: BİLİMSEL METİN İŞLEME AMAÇLI ALANA ÖZGÜ PROGRAMLAMA DİLİ

9-11 ŞubatAkademik Bilişim 2006Pamukkale Üniversitesi 5

Alana Özgü Programlama Dilleri Belli bir alandaki problemlerin uygun notasyonlarla

ifade edilmesini sağlar. Daha çabuk ve daha kolay çözümler geliştirilmesine

olanak tanır. Sadece alana ait işlerin yapılmasını amaçlar. Problem alanı ve kullanılan dil arasındaki kavramsal

mesafeyi azaltır. Programlamayı daha basit ve güvenilir bir hale getirir. Alandaki tüm kavramları kapsayacak kadar geniş

olmalıdır. Dildeki kavramlar anlaşılır olmalıdır.

Page 6: BİLİMSEL METİN İŞLEME AMAÇLI ALANA ÖZGÜ PROGRAMLAMA DİLİ

9-11 ŞubatAkademik Bilişim 2006Pamukkale Üniversitesi 6

Alana Özgü Diller İçin Temel Adımlar1. Alan Analizi: Alandaki benzer ve farklı

özellikleri ortaya çıkarmayı amaçlar.

2. Dil Tasarımı: Alan analizinin sonuçlarından dilin sentaks kuralları belirlenir.

3. Kod Üretici Oluşturmak: Tasarlanan dil kullanılarak oluşturulan modellerden, uygulama kodu üreten program tasarlamak.

Page 7: BİLİMSEL METİN İŞLEME AMAÇLI ALANA ÖZGÜ PROGRAMLAMA DİLİ

9-11 ŞubatAkademik Bilişim 2006Pamukkale Üniversitesi 7

Alan Analizi

Alana özgü dildeki kavramları ortaya çıkartmak için yapılan ön çalışmadır.

Alan analizi yapmanın iki farklı yolu: Alandaki uzmanlarla çalışmak Öncede yazılmış kodların incelenmesi

Alan analizinin amacı: Ortak ve farklı yönleri bulmak

Page 8: BİLİMSEL METİN İŞLEME AMAÇLI ALANA ÖZGÜ PROGRAMLAMA DİLİ

9-11 ŞubatAkademik Bilişim 2006Pamukkale Üniversitesi 8

Alan Analizi: Genel Görüntü

Girdi/Çıktı katmanı Farklı kaynaklardan veri

okuma Yeniden biçimlendirilen verinin

çıktı dosyasına yazılması Veri Ayıklama

Önemli verilerin ayıklanması, kalanlarının atılması

Veri Dönüştürme Ayıklanan verinin istenen

biçime sokulması

Page 9: BİLİMSEL METİN İŞLEME AMAÇLI ALANA ÖZGÜ PROGRAMLAMA DİLİ

9-11 ŞubatAkademik Bilişim 2006Pamukkale Üniversitesi 9

Girdi/Çıktı İşlemleri

Girdi/Çıktı işlemleri kullanıcıdan olabildiğince soyutlanmalıdır.

En temel dosya işlemleri şunlardır: Dosya açma Dosya kapama Sonraki satırı okuma Satır atlama Belli bir karakter dizisi ile başlayan satıra atlama Dosyaya yazma

Page 10: BİLİMSEL METİN İŞLEME AMAÇLI ALANA ÖZGÜ PROGRAMLAMA DİLİ

9-11 ŞubatAkademik Bilişim 2006Pamukkale Üniversitesi 10

Veri Ayıklama İşlemleri

İlk etapta, dosyanın işimize yarayacak bölümleri ayrıştırılır.

Elde edilen verilerden istediğimiz veri yapılarını ayıklarız.

Temel işlemler: Tamsayı okuma Ondalık sayı okuma Karakter dizisi okuma Sonraki kelimeyi atlama

Page 11: BİLİMSEL METİN İŞLEME AMAÇLI ALANA ÖZGÜ PROGRAMLAMA DİLİ

9-11 ŞubatAkademik Bilişim 2006Pamukkale Üniversitesi 11

Veri Ayıklama İşlemleri

Temel işlemleri birleştirip, daha karmaşık işler yapan işlevler elde edebiliriz. Koordinat verisi okumak için üç tane ondalık sayı

okuma işlemi kullanılır. Matris ayıklama işlevi için tamsayı ve ondalık sayı

okuma işlemleri yanısıra satır okuma, satır atlama ve kelime atlama işlemleri de kullanılır.

Page 12: BİLİMSEL METİN İŞLEME AMAÇLI ALANA ÖZGÜ PROGRAMLAMA DİLİ

9-11 ŞubatAkademik Bilişim 2006Pamukkale Üniversitesi 12

Matrisler

Bilimsel dosyalarda sıkça karşılaşılır. Değişik gösterim biçimleri olduğu için ayıklanması

en zor veri tiplerinden bir tanesidir. Matris çeşitleri:

Alt-üçgen matris Kare matris Üst-üçgen matris

Köşegen problemi

Page 13: BİLİMSEL METİN İŞLEME AMAÇLI ALANA ÖZGÜ PROGRAMLAMA DİLİ

9-11 ŞubatAkademik Bilişim 2006Pamukkale Üniversitesi 13

Matris Gösterimleri Klasik Gösterim

Küçük boyutlu matrisler için uygundur.

Parçalı Gösterim Büyük matrislerin

karışmaması için uygun bir yöntemdir

Dosya içinde takip etmesi zordur.

Dizinli Gösterim: Genellikle üst-üçgen

matrisler için kullanılır.

Page 14: BİLİMSEL METİN İŞLEME AMAÇLI ALANA ÖZGÜ PROGRAMLAMA DİLİ

9-11 ŞubatAkademik Bilişim 2006Pamukkale Üniversitesi 14

Veri Biçimlendirme İşlemleri

Ayrıştırılan verinin istenilen formata sokulmasını sağlayan işlemlerdir.

Bunlardan bazıları: Normalleştirme fonksiyonu: Verilen bir matris ya

da vektör elemanının değeri verilen bir eşik değerden küçükse, eleman verilen hedef değere eşitlenir.

Transpoze fonksiyonu: Matrisi devrik hale getirmek için kullanılır.

Sayı Formatı: Ondalık sayıların hangi biçimde yazılması gerektiğini belirler.

Page 15: BİLİMSEL METİN İŞLEME AMAÇLI ALANA ÖZGÜ PROGRAMLAMA DİLİ

9-11 ŞubatAkademik Bilişim 2006Pamukkale Üniversitesi 15

Alana Özgü Dil Tasarımı

Alan analizi sonucunuda belirlenen kavramlardan, bu aşamada sentaks kuralları belirlenir.

Alandaki her kavrama denk gelen bir sözcük bulunacaktır.

Sentaks kurallarını tanımlamak için genişletilebilir işaretleme dili (XML) kullanılmıştır.

XML seçiminin başlıca sebepleri: Daha okunaklı olması. Modelleme için daha elverişli olması. Ayrıştırma işlemlerinin daha kolay olması. Sentaks hatalarının XML ayrıştırıcı tarafından bulunması.

Page 16: BİLİMSEL METİN İŞLEME AMAÇLI ALANA ÖZGÜ PROGRAMLAMA DİLİ

9-11 ŞubatAkademik Bilişim 2006Pamukkale Üniversitesi 16

Sentaks Kuralları

Alan analizi aşamasında bulunan kavramların herbirine karşılık gelen bir XML etiketi atanır.

Bundan sonra, etiket bilgilerinin dahili elemanlar içinde mi yoksa nitelik (attribute) olarak mı tutulacağı belirlenir.

Örnekler:Girdi dosyası aç <input filename=“a.out”/>Satır atlama <skipline numberOf=“3”/>(dahili) <skipline>3</skipline>X isimli değeri 0 olan bir tamsayı tanımlama

<variable type="integer" name="x" value="0"/>

Page 17: BİLİMSEL METİN İŞLEME AMAÇLI ALANA ÖZGÜ PROGRAMLAMA DİLİ

9-11 ŞubatAkademik Bilişim 2006Pamukkale Üniversitesi 17

Eclipse Modelleme Çatısı (EMF) Alana özgü modelleme için kullanılmıştır. Yapılandırılmış bir model üzerine, uygulama

üretmek için kullanılan modelleme ve kod üretme aracıdır.

Üç temel parçadan oluşur: Ecore – Model tanımlamak için kullanılan meta-model EMF.Edit – Model düzenleyicileri oluşturmak için kullanılan

genel sınıflardır. EMF.Codegen – EMF modelleri için çalışan düzenleyiciler

oluşturmak için gerekli olan herşeyi üretirler.

Page 18: BİLİMSEL METİN İŞLEME AMAÇLI ALANA ÖZGÜ PROGRAMLAMA DİLİ

9-11 ŞubatAkademik Bilişim 2006Pamukkale Üniversitesi 18

EMF XML şeması

kullanılarak, çalışan model düzenleyici oluşturulur.

Bu düzenleyiciler istenilen şekilde düzenlenebilirler.

Çıktı olarak alan modeli elde edilir.

Page 19: BİLİMSEL METİN İŞLEME AMAÇLI ALANA ÖZGÜ PROGRAMLAMA DİLİ

9-11 ŞubatAkademik Bilişim 2006Pamukkale Üniversitesi 19

Kod Üretme

Genellikle yazılım geliştirme aşamasında tekrar edilen işler olduğu zaman kullanılan bir yöntemdir.

Bir kez kod üretici program yazılır ve tekrar tekrar kullanılır.

Uygulama mantığını daha üst seviyeye çekmemizi sağlar.

Şablon-tabanlı kod üretme tekniği kullanılmıştır.

Page 20: BİLİMSEL METİN İŞLEME AMAÇLI ALANA ÖZGÜ PROGRAMLAMA DİLİ

9-11 ŞubatAkademik Bilişim 2006Pamukkale Üniversitesi 20

Şablon-Tabanlı Kod Üretimi

Şablon işlemcisi, model ve kod şablonunu birleştirerek uygulama kodunu üretir.

Kod şablonu seçilen bir dilde yazılan ve içinde boşluklar olan kod dosyalarıdır.

Şablondaki boşluklar, modelin elemanları ile doldurulur.

Üretilen kod, dilin derleyicisi ile derlenerek çalışan uygulama elde edilir.

Page 21: BİLİMSEL METİN İŞLEME AMAÇLI ALANA ÖZGÜ PROGRAMLAMA DİLİ

9-11 ŞubatAkademik Bilişim 2006Pamukkale Üniversitesi 21

Hata Kontrol Mekanizmaları

Sentaks hataları, model düzenleyicisi ve XML şema yardımıyla kolaylıkla yakalanabilir.

Statik kod analizi Tanımlanmamış değişken kullanımı. Geçersiz referans kullanımı. Program üretme aşamasından önce çalışır.

Çalışma zamanında oluşabilecek hatalar. Alana özgü kodda hangi satır yüzünden oluştuğu

bilinmelidir. Eşleştirme tablosu

Page 22: BİLİMSEL METİN İŞLEME AMAÇLI ALANA ÖZGÜ PROGRAMLAMA DİLİ

9-11 ŞubatAkademik Bilişim 2006Pamukkale Üniversitesi 22

İlginize Teşekkürler!