mühendislikte dil teorisi ve programlama paradigmaları
DESCRIPTION
Yrd. Doç. Dr. M. Fatih HOCAOĞLU Mühendislik ve Mimarlık Fakültesi Endüstri Mühendisliği Bölümü. Mühendislikte Dil Teorisi ve Programlama Paradigmaları. Neden Böyle Bir Konu . Üniversitemiz çok disiplinli bir yapıya sahip, - PowerPoint PPT PresentationTRANSCRIPT
Mühendislikte Dil Teorisi ve Programlama Paradigmaları
Yrd. Doç. Dr. M. Fatih HOCAOĞLUMühendislik ve Mimarlık Fakültesi Endüstri Mühendisliği Bölümü
Neden Böyle Bir Konu Üniversitemiz çok disiplinli bir yapıya sahip,
Çalışmalarımızın diğer disiplinlerle olan etkileşimi ve oluşturacağı sinerji, üniversitenin ana profilini oluşturacaktır,
Bilimsel üretimin en önemli gerekliliği, ilgilenilen konunun felsefi arka planına olan hakimiyete bağlıdır,
Bir kavramın anlaşılması, daha basit ifadelere dönüştürebilme becerisi ile tanımlanır,
Sunum Planı
Dil teorisi Syntax, Semantic ve Grammar Bir cümlenin bileşenlerine ayrılması
(Grammar parsing) ve gramer kuralları Kural tabanlı cümle üretimi Mantıksal ifadelerden gramer kuralların
üretimi Modelleme dillerinde ifade
Dillere göre paradigma
Hangi Sorulara Cevap Arıyoruz Doğal dilin arka planında yer alan
matematik gösterim nedir ?
Doğal dil ifadeleri mantık formülasyonu dönüşümü,
Paradigma ve gramer ilişkisi,
Bilgisayar dillerinin muhakeme ve dil yapısının izlenmesi
Temel VarsayımDoğal Diller
• Türkçe• İngilizce• Fransızca• …
Bilgisayar Dilleri
• Prosedürel• Declarative• Virtual machine• ..
MatematikProgramlam
a
• Diferansiyel Denklemler
• Doğrusal Denklemler
• İntegral Denklemler
Mantıksal Programlam
a • Önerme setleri
Modelleme Dilleri
• FSA• Celluar
Automata• Petri net
Ortak Dil, gramer vemuhakem
e mekanizm
ası
Bir Dil Bileşeni olarak: Bilgi Gösterimi
Bilgi gösteriminin temel hareket noktası Kavramsallaştırmadır.
Kavramsallaştırma dünyanın, belirli bir amaç için, basitleştirilmiş bir soyutlamasıdır.
Ontoloji bu soyutlamaya ilişkin spesifikasyonları belirler.
Dil bir alfabe üzerinde tanımlanmış (∑), karakter katarları (string) (∑*) olarak tanımlanır.
Karakter katarları bir gramer kuralına tabi olarak üretilirler.
Bir mantıksal dilin bileşenleri; Syntax Semantic Theorem proving
Önerme Mantığı (Propositional logic) Dünya tasviri doğrulanan veya doğrulanmayan önermeler ve
doğruluğuna inanılan olgular üzerinde kurgulanır Birinci Derece Mantık (First-Order Logic); Nesneler, ilişkiler,
özellikler ve fonksiyonlar Dünya varlıkları ve aralarında kurulu ilişkileri açıklar Temporal logic zaman sırasallık katarak bir adım ileriye taşır Epistemological commitments; Bilginin stative bilgisi
Dil ve Mantık İlişkisi
wSonlanmaIII
waavewÖzyinelemeII
ifadeTemelI
:.
:.
:.
NotasyonMatematik Teorisi Dil
**
Ontolojik Betimleme
İçerikten Bağımsız Gramer Değişkenler, sonlandırıcı semboller ve
sonlandırıcı olmayan semboller (variable, non-terminal symbols, terminal symbols)
V: Değişkenler, ∑: Alfabe (terminal ifadeler) P: Kural seti, P Є V x(V U ∑)* S: Başlangıç sembolü Context-Free Grammar tree
),,,( SPV
Formal Diller ve Ontolojik ve Epistemolojik BetimlemeleriLanguage Ontological Commitment Epistemologic
al Commitments
Propositional logic Facts True/false/?First-order logic Facts, objects, relations True/false/?Temporal logic Facts, objects, relations, times True/false/?Probability theory facts Degree of belief
0..1Fuzzy logic Degree of truth Degree of belief
0..1Muhakeme Teknikleri •Modus Ponen, Modus tolen•And- elimination•And- introduction•Or- introduction•Double negation elimination•Unit resolution•Resolution
Bir Cümlenin Anlam Yapısı Kurulan bir cümle iki temel yapıda ele
alınır:Eylem Bildiren ve Durum bildiren cümleler Önerme içeriği: (e.g., “the door is closed”) Örnek: Eylem Bildiren
▪ İstenilen durum = “the door is closed ” İstek İfade = “please close the door”
▪ Bilgilendirme içeriği = “the door is closed” ” İstek İfade = “the door is closed!”
▪ Sorgulama = “the door is closed” İstek İfade = “is the door closed?”
Gramer Kuralları Kural tabanlı cümle oluşturma;
<sentence>→<noun-phrase> <verb-phrase> <sentence>→<noun-phrase> <verb><direct-
object-phrase> <noun-phrase>→<proper-noun> <proper-noun>→Ali, Ahmet, Driver <common-noun>→car; brake <determiner>→a;the <verb-phrase>→<verb><adverb>; <verb> <verb>→stop; <adverb>→slowly; eventually, Always
<Cümle> => <isim-ifadesi><fiil ifadesi> => <uygun isim><fiil ifadesi> => <Ahmet><fiil><zarf> => Ahmet drives <zarf> => Ahmet drives frequently
Mantıksal İfadeden Matematiksel Çözümlemeye
Mantıksal Gramer Çözümlemesi
Kavramsal Model Mantıksal ifadeler
Gramer Gerçek Sistem Davranışı
KM kullanarak TF kurulmasıMantıksal çözümleme ve gramer kuralları üretimi
Gerçek dünya ifadeleri
Paradigma
Kuraldan Cümleye
IF Brake=“pushed” Then Car=“stop”
Olaylar arası sembolik zaman bilgisiIf brake is pushed, then the car stops.
If brake is pushed, then the car stops.If brake is pushed, then the car stops.If brake is pushed, then the car stops.If brake is pushed, then the car stops.If brake is pushed, then the car stops.If brake is pushed, then the car stops.eventuallyIf brake is pushed, then the car stops.eventually
� (� Brake=“pushed” (Car=“stop”))
P V ¬P = 1))21(1(221
21121:7))21((221)21(:6
)(:5)(:4
)21(1221:3)(:2
:1
qqOqqqq
PPPPPPP
Durum Geçişleri
SAB,
S ¬A,
B B,
B¬B B
SAB,
S ¬A,
BB B
�(A(B))
(� A �(B)) BAA S0 S1
S0 S1B
A
A B
Mantıksal İfade
Gramer Kuralları FSA
Gramer Kuralları ile Cümle Doğrulama
S0
S0
S1
S1
S0
brake(stand_by,12.0).car(moving,12.0).…..
AB
¬A A ¬BB
S0
S0A
BS0
S0¬A
S0
S0
S1B
AS0
S1
B
¬B
S0
S0¬A
S0
S0¬A
S0
S0A
B S0
S0A
B S0
S0A
BS0
S0A
BS0
S0¬A
S0
S0
S1B
A
S0
S0
S1B
A
S0
S0
S1B
A
S0
S0
S1B
A
S0
S1
B
¬B
S0
S1
B
¬B
S0
S1
B
¬B
S0
S1
B
¬B
S0
S1
B
¬B
(Brake=“pushed”� (car=“stops”))
S0 S1B
A
A B
Buraya kadar ne oldu ?
Bir cümlenin oluşumu – alfabe, kelime ve cümle
Bir dilin grameri, Kurallı cümle oluşturma, Dil ve muhakeme, Dil ifadelerinin mantıksal tanımı ve
matematiksel çözümlemesi
Sonrası
Programlama Dilleri tüm bu kavramları nasıl ele alır,
• Bilgi gösterimi• Yazım ve semantik
• Varlık tanımı ve paradigma• Muhakeme mekanizması var mı ? Olmalı
mı ?
Programlama Paradigmaları
Deklarative programlama vs. Prosedürel Programlama Nesne YönelimliMantık ProgramlamaFonksiyonel Programlama
Programlama Dil Tipleri
Declarative (bildirimsel)
Prosedürel
Yorumlayıcılar Virtual machine
Bildirimsel ve Prosedürel Programlamalar Bildirimsel diller varlıkları tanımlama
esaslıdır, bir çözümü tarif etmek üzerine kurgulanmazlar. Problem tanımı ile çözüm arasında bir topolojik benzerlik kurulabilir.
Prosedürel diller temelde problemin tanımlanmasından sonra farklı bir algoritmik çözüm geliştirirler ve topolojik benzerlik yoktur.
Mantık Programlama
Önerme (Proposional) mantığı ve birinci derece mantık (first-order logic) üzerine kurgulanmış bir dünya betimlesi vardır.
Tasvir edilen dünya doğruluğu kabul edilen olgular (fact) ve doğruluğu veya yanlışlığı ispat edilecek olan önermeler ile ispat için kullanılan bir muhakeme mekanizması ile kurgulanır.
Örnek: Aile Ağacı Bilgi Tabanı
anne(Anne,Cocuk):-evli(Baba,Anne),baba(Baba,Cocuk).kardes(Cocuk1,Cocuk2):-baba(Baba,Cocuk1),baba(Baba,Cocuk2), Cocuk1\=Cocuk2, anne(Anne,Cocuk1),anne(Anne,Cocuk2).evlat(X,Y):-baba(Y,X),anne(Z,X),evli(Y,Z).
ogul(X,Y):-evlat(X,Y), erkek(X).kizEvlat(X,Y):-evlat(X,Y),kiz(X).akraba(X,X,kendisi).akraba(X,Y,kardes):-kardes(X,Y).akraba(X,Y,babasi):-baba(X,Y).akraba(X,Y,annesi):-anne(X,Y).
erkek(fatih). // Erkek çocuklarerkek(salih).erkek(hikmet).kiz(melltem). // Kız çocuklarkiz(ayse).kiz(melek).baba(habip,fatih).Baba(habip,salih).baba(habip,hikmet).baba(habip,melek).baba(habip,meltem).baba(habip,ayse).Evli(habip,gülizar).
BİLGİTABANI
Örnek: Aile Ağacı Sorgu Yapıları
Fatih’in babasının oğlu olduğu halde kardeşi olmayan kişi
kimdir ?baba(X,fatih),ogul(Z,X),
not(kardes(fatih,Z)),akraba(fatih,Z,L).
SORGU
Doğal Dil Dönüşüm
ü
Fatih’in babasının oglu olan fakat fatih’in kardeşi olmayan kişi kimdir ve Fatih ile akrabalık ilişkisi nedir ?
Özyineleme vs. iterasyon Her adımda çözümde
gelişme görülür,
int factorial=1;For (int i=1; i<=n; i++)
factorial=factorial*i;
Doğal Dil açılımı Bir sayının faktöryeli, 1’den
başlanarak, o sayıya kadar olan tam sayıların birer artımlı olarak çarpımıdır.
Procedural – not declarative
Her adım problemin daha basit bir formuna dönüştürülerek en ilkel, bilinen formuna doğru basitleştirme yapılır.
N! = N* (N-1)!
factorial(1,1). factorial(X,F):-N is F-1, factorial(K, N),!, X is K*F.
Bir sayının faktöryeli o sayının bir eksiginin faktöryeli ile çarpımına eşittir.
Fact, dünya ile
ilgili bilinen
Problemin anlatımı, çözüm
tanımı değil.
Fonksiyonel Programlama Dünya bir fonksiyonlar ailesi olarak tasvir edilir.
Her bir fonksiyon bir girdi parametre setine, çıktı parametresine ve prosedüre sahiptir.
Büyük çaplı problemlerin çözümünde yönetilmesi zor bir çözümdür: 7 değişken kuralı
NYP fonksiyon tanımları içerisinde bir tür iç tasarım unsuru olarak hala geçerlidir.
NYP: Nesne Yönelim Programlama Varlıklar birbirlerinden ayırt edilmelerini
sağlayan özniteliklere ve fonksiyonlara sahiptirler. Çevrelerindeki varlıklar ile olay etkileşimine sahiptirler.
Dünya tasvirinde kullanılan doğal dil ifadelerinde yer alan Öznelerin nesne (sınıf) fiillerin sınıflara ait fonksiyon ve özellik tanımlamalarının öznitelik olarak tasarlanması doğal dil-OOP arası bir çeviri olarak düşünülebilir.
class Class
Sinif
- att1: int- att2: double
+ Function() : int+ FunctionOther() : void
Class1
Class2
NYP Özellikleri
class Class
Geometry
- att0: int- att1: int
+ Draw() : void# Function() : void
Ucgen
+ Draw() : void- Function2() : void
Kare
+ Draw() : void
Daire
+ Draw() : void
• Çok biçimlilik • Veri saklama• Soyutlama • Miras
mekanizması• Esneklik• Orthogonality
Cephe tabanlı Programlama NYP’de karşılaşılan ana sorunlar;
Kod saçılması Saçılmış isterler İster kümeleri
Cephe tabanlı programlama; Birbirlerini çapraz kesen ilgileri ayrıştırarak modülerliği güçlendirmeyi amaçlayan bir paradigmadır.
NYP’nin dayandığı ontolojiden daha farklı bir paradigmaya sahip değildir. Sunulan paradigma yazılım teknolojine ilişkindir.
Etmen tabanlı Programlama Esin kaynağı insan benzeri varlık davranışlarıdır, Temel özellikleri;
Proactive Reactive Social Otonom
%90+ yazılım mühendisliği %10- Yapay Zeka Bir ortamda varolurlar ve ardıl olarak tanımlı
fonksiyonları icra ederek görevlerini tamamlamazlar, bulundukları çevrede tanımlı olaylara amaçlarını sağlayacak şekilde reaksiyon gösterirler.
Otonom
Öğrenmeİşbirliği
Akıllı
Arayüz
Etmen Yetenekleri Tümleşimi
Matematik Modeller: Modelleme Araçları FSM (FSA)
Varlıkların durumları ve durum geçişleri ile eylem yürütmeleri tasvir edilir.
Bond Graph Dinamik fiziksel sistemlerin
modellemesinde kullanılır, Enerji, güç, sinyal, akış gibi
fiziksel öğelerin modellenmesinde yaygın olarak kullanılır,
Düğümler ve aralarında tek-çift yönlü akışlar olarak tasarlanırlar
Celluar automaton Birbiri ile etkileşimli,
durumsallık bilgisi olan sonlu sayıda hücre modeli ile dünya kurgulanır.
Sonuç Bir dil tanımı doğal dil dahil tüm
dilleri evrensel bir genelleme ile tanımlamalıdır. Syntax Semantic Grammar bu tanımlamanın elemanlarıdır
Dillerin birbirleri arasında dönüşümü; Doğal dillerin arkaplanını oluşturan
algoritmik yapıya, Matematiksel dillerin bir ontolojik
arkaplana sahip olmasına bağlıdır.
Bir muhakeme mekanizması dil tanımını muhakeme algoritması ile tümleştirir,
Doğal Diller
Mantıksal İfadeler
Matematik Programla
ma
Bilgisayar Dilleri
Modelleme Dilleri
Bu dönüşüm ne sağlar ? Sistem tasarımında doğal dilden başlayan ve
VV&A sürecine kadar devam eden sürecin her aşamasında geçiş tasarımı güçlendirir,
Süreç kontrolü sağlar, Süreç raporlamalarını ve taraflar arasında
uzlaşımı güçlendirir, Ortak bir dil üzerinde kavramları birleştirir, Süreçler ve dillerin daha geniş bir ontolojik
betimleme iddiasına sahip olmasını sağlar, test eder,
İfadelerin nesnelleştirilerek daha güçlü olarak kavranmasını sağlar.
T e ş e k k ü r l e r …