mühendislikte dil teorisi ve programlama paradigmaları

35
Mühendislikte Dil Teorisi ve Programlama Paradigmaları Yrd. Doç. Dr. M. Fatih HOCAOĞLU Mühendislik ve Mimarlık Fakültesi Endüstri Mühendisliği Bölümü

Upload: shona

Post on 23-Feb-2016

85 views

Category:

Documents


4 download

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 Presentation

TRANSCRIPT

Page 1: Mühendislikte Dil Teorisi ve Programlama Paradigmaları

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ü

Page 2: Mühendislikte Dil Teorisi ve Programlama Paradigmaları

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,

Page 3: Mühendislikte Dil Teorisi ve Programlama Paradigmaları

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

Page 4: Mühendislikte Dil Teorisi ve Programlama Paradigmaları

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

Page 5: Mühendislikte Dil Teorisi ve Programlama Paradigmaları

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ı

Page 6: Mühendislikte Dil Teorisi ve Programlama Paradigmaları

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.

Page 7: Mühendislikte Dil Teorisi ve Programlama Paradigmaları

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

Page 8: Mühendislikte Dil Teorisi ve Programlama Paradigmaları

İç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

Page 9: Mühendislikte Dil Teorisi ve Programlama Paradigmaları

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

Page 10: Mühendislikte Dil Teorisi ve Programlama Paradigmaları

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?”

Page 11: Mühendislikte Dil Teorisi ve Programlama Paradigmaları

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

Page 12: Mühendislikte Dil Teorisi ve Programlama Paradigmaları

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

Page 13: Mühendislikte Dil Teorisi ve Programlama Paradigmaları

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

Page 14: Mühendislikte Dil Teorisi ve Programlama Paradigmaları

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

Page 15: Mühendislikte Dil Teorisi ve Programlama Paradigmaları

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

Page 16: Mühendislikte Dil Teorisi ve Programlama Paradigmaları

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

Page 17: Mühendislikte Dil Teorisi ve Programlama Paradigmaları

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ı ?

Page 18: Mühendislikte Dil Teorisi ve Programlama Paradigmaları

Programlama Paradigmaları

Deklarative programlama vs. Prosedürel Programlama Nesne YönelimliMantık ProgramlamaFonksiyonel Programlama

Page 19: Mühendislikte Dil Teorisi ve Programlama Paradigmaları

Programlama Dil Tipleri

Declarative (bildirimsel)

Prosedürel

Yorumlayıcılar Virtual machine

Page 20: Mühendislikte Dil Teorisi ve Programlama Paradigmaları

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.

Page 21: Mühendislikte Dil Teorisi ve Programlama Paradigmaları

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.

Page 22: Mühendislikte Dil Teorisi ve Programlama Paradigmaları

Ö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

Page 23: Mühendislikte Dil Teorisi ve Programlama Paradigmaları

Ö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 ?

Page 24: Mühendislikte Dil Teorisi ve Programlama Paradigmaları

Ö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.

Page 25: Mühendislikte Dil Teorisi ve Programlama Paradigmaları

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.

Page 26: Mühendislikte Dil Teorisi ve Programlama Paradigmaları

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

Page 27: Mühendislikte Dil Teorisi ve Programlama Paradigmaları

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

Page 28: Mühendislikte Dil Teorisi ve Programlama Paradigmaları

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.

Page 29: Mühendislikte Dil Teorisi ve Programlama Paradigmaları

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.

Page 30: Mühendislikte Dil Teorisi ve Programlama Paradigmaları

Otonom

Öğrenmeİşbirliği

Akıllı

Arayüz

Etmen Yetenekleri Tümleşimi

Page 31: Mühendislikte Dil Teorisi ve Programlama Paradigmaları

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.

Page 32: Mühendislikte Dil Teorisi ve Programlama Paradigmaları

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

Page 33: Mühendislikte Dil Teorisi ve Programlama Paradigmaları

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.

Page 34: Mühendislikte Dil Teorisi ve Programlama Paradigmaları

T e ş e k k ü r l e r …

Page 35: Mühendislikte Dil Teorisi ve Programlama Paradigmaları