ForumSevgisi.Com

  ForumSevgisi.Com > ForumSevgisi Webmaster Bölümü > Webmaster Genel

Webmaster Genel Webmasterlıkla ilgili Her şeyin Paylaşıldığı Bölüm.


Programlama dilleri-3

Webmasterlıkla ilgili Her şeyin Paylaşıldığı Bölüm.


Programlama dilleri-3

ForumSevgisi Webmaster Bölümü Kategorisinde ve Webmaster Genel Forumunda Bulunan Programlama dilleri-3 Konusunu Görüntülemektesiniz,Konu İçerigi Kısaca ->> Programlama dilleri-3 Hedef(goal) Q için: B :- A C :- B … Q :- P • •Alt hedefi ispatlama işlemine ...

Kullanıcı Etiket Listesi

Yeni Konu aç  Cevapla
LinkBack Seçenekler Stil

Okunmamış 20 Mart 2015, 22:37   #1
Durumu:
Çevrimdışı
IDurDurBeni
Düşmanlara inat Mücadeleye devam...
IDurDurBeni - ait Kullanıcı Resmi (Avatar)
Arastirmaci
Üyelik tarihi: 12 Mart 2015
Mesajlar: 164
Konular: 95
Beğenilen: 49
Beğendiği: 64
www.forumsevgisi.com
Standart Programlama dilleri-3

Programlama dilleri-3

Hedef(goal) Q için:

B :- A
C :- B
…

Q :- P
•

•Alt hedefi ispatlama işlemine eşleme(matching), sağlama(satisfying), veya çözüm(resolution) adı verilir
•Aşağıdan-yukarıya çözüm, ileri zincirleme(Bottom-up resolution, forward chaining)

•Gerçekler(facts) ve veritabanı(database) kurallarıyla (rules) başlar ve hedefe(goal) ulaştıracak sırayı bulmaya çalışır
•Geniş bir olası doğru cevaplar kümesiyle iyi çalışır
•Yukarıdan-aşağıya çözüm, geri zincirleme(Top-down resolution, backward chaining)
•Hedef ile başlar ve veritabanındaki gerçekler(facts) kümesine ulaştıran sırayı(sequence) bulmaya çalışır
•Küçük bir olası doğru cevaplar kümesiyle iyi çalışır
•Prolog implementasyonları geri zincirleme(backward chaining) kullanır
•Hedef birden fazla alt hedefe sahipse, şunlardan birini kullanır
•Depth-first arama: diğerleriyle çalışmadan önce ilk alt hedefin tamamen ispatını bulmak
•Breadth-first arama: bütün alt hedefler üzerinde paralel çalışma
•Prolog depth-first arama kullanır
•Daha az bilgisayar kaynağıyla yapılabilir
•Birden çok alt-hedefi(subgoal) bulunan bir hedef(goal) ile eğer alt hedeflerden birinin doğruluğunu göstermekte başarısız olunursa, alternatif bir çözüm için bir önceki alt hedef yeniden ele alınır: geri-izleme(backtracking)
•Bir önceki aramanın bıraktığı yerden aramaya başlanır
•Çok fazla zaman ve alan alabilir çünkü her bir alt-hedefin(subgoal) olası bütün ispatlarını bulabilir

Basit Aritmetik

•Prolog tamsayı değişkenlerini( integer variables) ve tamsayı aritmetiğini destekler
•is operatörü: sağ işlenen(operand) olarak bir aritmetik ifadeyi ve sol işlenen(operand) olarak da değişkeni(variable) alır
•A is B / 10 + C
•Atama ifadesi(assignment statement) ile aynı değildir!


Örnek:

speed(ford,100).
speed(chevy,105).
speed(dodge,95).
speed(volvo,80).
time(ford,20).
time(chevy,21).
time(dodge,24).
time(volvo,24).
distance(X,Y) :- speed(X,Speed),

time(X,Time),

Y is Speed * Time.


İzleme(Trace)

•Her adımdaki başlatmaları(instantiations) gösteren yerleşik yapı(built-in structure)
•Yürütmenin İzleme Modeli( Tracing model of execution )- dört olay:
–Çağırma(Call) (hedefi(goal) gerçekleştirme çabasının başlangıcı)
–Çıkış(Exit) (hedef gerçekleştirilmiş olunca)
–Yinele(Redo) (geri izleme(backtrack) olur)
–Başarısız(Fail) (hedef başarısız olduğunda)

Örnek:



likes(jake,chocolate).
likes(jake,apricots).
likes(darcie,licorice).
likes(darcie,apricots).

trace.
likes(jake,X),

likes(darcie,X).


Prolog’un eksiklikleri (Deficiencies)

•Çözüm (Resolution) sırası kontrolü
•Kapalı-çevre varsayımı (closed-world assumption)
•Değilini alma (negation) problemi
•Yerleşik kısıtlamalar(Intrinsic limitations)



Prolog Programlama Dilinin Avantajları:

•Prolog programlar mantığa dayalıdır, bu yüzden so daha mantıksal düzenlenebilir ve yazılabilir
•İşleme doğal olarak paraleldir, bu yüzden Prolog yorumlayıcıları(interpreters) çoklu-işlemcili makine avantajını kullanabilirler
•Programla kısa ve özdür, bu yüzden geliştirme süresi azalmıştır– prototipleme(ilk-ürün oluşturma-prototyping) için iyidir

Geldik en cafcaflısına arkadaşlar.

Lisp Nedir?
Lisp, kullanımda olan en eski ve en güçlü programlama dillerinden biridir. John McCarthy‘in 1958′de icad ettiği dilden türetilmiş birçok dile verilen genel ad olmakla birlikte, günümüzde çoğunlukla ANSI Common Lisp’in kısa adı olarak kullanılır. Diğer yaygın lehçeleri Emacs Lisp (elisp), Scheme, ve AutoCAD’in Autolisp’idir.
Lisp lehçesi Scheme, MIT’de lisans öğrencilerine ilk programlama dersi olarak öğretilmektedir. Bu derste Bilgisayar Programlarının Yapısı ve Yorumlanması (Structure and Interpretation of Computer Programs) kitabı kullanılır. Dersin başında öğrencilere geometri ile coğrafya arasında nasıl bir ilişki varsa, programlama ile bilgisayar arasında da böyle bir ilişki olduğu anlatılmaktadır.
Lisp Madem Bu kadar İyi Neden Yaygın Değil
Lisp programlama dili gerçekten çok güçlü bir programlama dilidir ama ticari sebepler ve öğrenme ile ilgili ön yargılardan ötürü popüler bir programlama dili değildir. Bu da lisp öğrenme isteğini genellikle baltalar. Günümüzde OOP programlama yapılan dillerin daha popüler olduğu bir gerçek. Buna rağmen lisp halen popüler bir dildir. Lisp ile program yazan kurumlar ve firmalar genellikle daha az sayıda personel çalıştırırlar. Bunda temel sebep lispin kendisindir. Aynı işi daha az kodla daha işlevsel yazma imkânı lisp ile her zaman vardır. Bu nedenle az programcı ile daha çok iş yürütülebilir. Az programcı da o dili bilen programcılar için daha az istihdam demektir.
Lisp size iş garantisi sunmaz fakat lisp iyi startuplar kurmanıza yarayabilir. Günümüzde lisp kullanılarak yazılmış büyük projeler genellikle açık kaynak camiasına kapalıdır. Bu da gelişmeye bir engeldir. Örneğin lisp ile yazılmış bir veri tabanı uygulaması o denli basit ve sadedir ki veri tabanı yönetim sistemini bile birkaç bin satır ile halledilmiş olabilir. Bu nedenle üçüncü parti kütüphanelerin sayısı da azdır. Kütüphaneye gerek bile kalmadan kimi işler yapılır.
Lisp dilinin yaygınlaşma ihtimali çok az ama yeni diller bunu değiştirmekte. Örneğin clojure dili java gücünü arkasına almak isteyen bir lisp lehçesidir. Bu konuda hayli başarılıdır. Yakın takipçileri bulunur. Common lisp kullanıcıları ise Avrupa’da bu dilin her yıl hazırlanan konferansları ile elit bir lisp programcıları kitlesi yaratmıştır. Lisp unutmamak gerekir ki entelektüel bir programlama dilidir. Kendi farklı jargonu kendi farklı bakış açıları olan hackerları içerisinde barındıran bir camiadır.
Lips Varken Delphi Hikaye
Lisp Nedir ?
· Lisp’in Özellikleri
· Kullanılan LİSP Derleyicisi
· Lisp programlama dili
- Lisp Dilinin Yapısı
- Operatörler ve Atomlar
- Karşılaştırmalar
- Setf ve Setq Fonksiyonları
- Değişkenler(Local ve Global)
- Matematiksel İfadeler
- Listeler
- Lisp’te Fonksiyon Yapısı ve Built-in Fonksiyonlar
- Kontrol Yapısı ve Döngüler
- I/O Yapısı
- Diziler
- Lisp’te Yüksek Seviyeli Fonksiyonlar
Lisp Nedir?
· Lisp, 1958 yılında John McCarty tarafından geliştirilmiş en eski, ikinci üst seviye programlama dilidir.
· List Processing 'in (Liste İşleme) kısaltılmış ifadesidir.
· Çoğunlukla yapay zeka uygulamalarında kullanılmakla beraber birçok probleme etkin çözümler üretebilen modüler programlama dilidir.
· Diğer dillerin sunduğu birçok yararlı özelliğe sahiptir( structures, çok boyutlu diziler, nesneler, karakter katarları vs ).
· LISP, yüksek seviyeli programlama dillerinin bir çoğuna göre daha az sınırlayıcı syntax yapısına sahiptir.

Lisp’in Özellikleri
· Değişkenleri liste olarak kabul eder.
· Dinamiktir; kullandığınız veri tiplerinden fonksiyonlara kadar bütün girdiler(entry) her yönüyle değişebilmektedir. Esneklik sağlar.
· Değişken tipi tanımlamaya gerek yoktur. Programın çalışır hale gelmesi için kendisi belirler. (Implicit tanımlama)
· LİSP Context free gramerdir.
· Güvenlidir. Bütün olayları kontrol altında tutar, beklenmedik bellek hatalarına ve çakışmalara izin vermez.
· LİSP ; C ,C++’ta run time anında yapılması gereken bir çok şeyi compiler anında yapmaya izin verir.
· Hata bildirimi ve hata eleme için güçlü araçlar sunar.
· Lispte Garbage- Collection vardır ve bununla daha emniyetli daha kesin ve doğru hafıza yönetimi sağlarsınız.
· En az sınırlayıcı syntax’a sahip olması en önemli avantajlarındandır.
· Case sensitive değildir.İstediğiniz şekilde büyük ve küçük harf ayrımında özgürsünüz.
· Geliştirilmiş hata tutma sistemine sahiptir.
· Diğer modern diller gibi sınırlayıcı, bir sürü yazım biçimini zorlayıcı da değildir. Basit ve esnek bir yazımı vardır.
Lisp Dilinin Yapısı
· Parantezler LİSP dilinin temel yapısını oluşturlar.
Örnek:
(defun a()
(setq b 5)
(setq c 6)
(setq d (+ b c))
(print d)) =>b ve c‘ye atanan iki değeri toplayıp d’ye atan ve sonucu ekrana yazan program
· Kesme işareti veri girilmesi durumunda kullanılır. Kesme işareti kullanılarak komut kipinden çıkılarak veri kipine geçilmiş olur.
(setq a’(ali ahmet mehmet))
· LİSP dilinde bir ifadeye değer atamak o ifadenin değişken olması için yeterlidir.
· Bir değişkenin değerini, değişkene başka değer vererek değiştirebiliriz.Değişken integer iken bir anda float ya da daha farklı bir tip olabilir.
Örnek:
(defun degisken()
(setq a 3)
(setq a’sayı) )

Operatörler
· + toplama
· - çıkarma
· * çarpma
· / bölme
· Mod mod alma
Atomlar
· Lisp te 2 özel atom vardır. Bunlar: - t
- Nil’dir.
· t “true “ olarak telaffuz edilip doğruyu temsil etmektedir . Nil ise yanlış veya boş listeyi temsil etmektedir.
Karşılaştırmalar
· (= a b) => eşit mi
· (/= a b) => eşit değil mi
· (< a b) => a<b doğru mu?
· (> a b) => a>b doğru mu?
· (<= a b) => a<=b doğru mu?
· (>= a b) => a>=b doğru mu?
max ve min karşılaştırma fonksiyonları:
· (max 10 11) ==> 11
· (min -12 -10) ==> -12
· (max -1 2 -3) ==> 2
tek-çift kontrol fonksiyonları:
· (evenp a) => a çift mi? =>parametre integer olmalı
· (oddp a) => a tek mi? =>parametre integer olmalı

Setf ve Setq
· Setq: Basit bir setq kullanımına örnek olarak değişkenlere değer atama verilebilir. Örneğin aşağıdaki kodda a,b ve c değerlerine 0,1 ve 2 değerleri atanıyor.
>(setq a 0 b 1 c 2)
a => 0
b => 1
c => 2

setq nun diğer bir kullanımı da sıralı değerleri kullanarak güncelleştirmeler yapmaktır. Örneğin aşağıdaki kodda önceden tanımlanmış değerler ile yeni değerler oluşturulurken setq komutu kullanılmış.
>(setq a (1+ b) b (1+ a) c (+ a b))
a => 2
b => 3
c => 5
· Setf: setf komutu liste tanımlamasında kullanılır. Yukarıda tanımladığımız yapı üzerinde düşünürsek a değeri ilk başta 0 iken aşağıdaki setf komutu ile bu değeri 3 yapıyoruz.
>(setf a 3)

Lokal Değişkenler
Local değişkenler “let” ile tanımlanırlar.Diğer dillere benzer yöndetanımlandığı fonksiyonun parantezi dışındaki ifadeler bu local değişkene erişemezler.Farklı olarak aynı fonksiyonun içinde de bu değişkene erişilemez.
Örnek1:
(defun yaz ()
(let ((a 5))
(print a)) "erisebilir"
"(print a) --> hata erisemez.."
)
(defun yaz2()
"a lokal degiskenine ulasamaz"
(print a))
Ornek2;
(defun topla()
(let ((a 4)(b 4)(c 5))
(setq d (+ a b c)))
(print d)
)
(defun ulas()
"topla fonksiyonu calismadan yazamaz"
(print d))
Ornek3;
(defun v()
(print "1 sayi giriniz..")
(setq b(read))
(let ((a b)(b 3))
(setq d (+(* a 5) b))) "d=(a*5)+b demek"
(print d)
(print "b nin son haline dikkat")
(print b)
)
Global Değişkenler
· Global değişkenler :
Lisp’ deki global değişkenler , defparameter ve defvar ile tanımlanırlar.

Örnek :
>> ( defparameter x 120 )
X
>>x
120
>> ( defvar y 50 )
Y
>>Y
50
Defparameter ile tanımladığımız değişkenin değerini tekrar defparameter veya setq kullanarak değiştirebiliriz;fakat defvar kullanarak değiştiremeyiz.
Defvar ile tanımlanan değişkenin değeri ise tekrar defvar kullanılarak değiştirilemez. Ancak defparameter ile tekrar değiştirebiliriz.
Defvar ile tanımlanmış değişkenin değeri setq kullanılarak değiştirilebilir.
Örnek :
>> ( defvar y 555 )
Y
>>Y
555
>> ( setq y 304 )
Y
>> y
304
Programda değerinin zor değişmesini istediğimiz değişkenleri defvar ile tanımlamamız
daha doğru olacaktır.
Örnek:
(defparameter x 30)
(defun a()
(print x))
(defun b()
(defvar x 5) "x sayisi degistirilemedi"
(print x))
(defun c()
(defparameter x 333) "x sayisi degisti.."
(print x))
(defun d()
(setq x 222) "x sayisi degisti.."
(print x))
(defun e()
(defparameter x 123) "x sayisi degisti.."
(setq x 456) "x sayisi degisti.."
(defvar x 789) "x sayisi degismedi"
(print x))

Lisp’te Matematiksel Ifadeler
· Lispte matematiksel ifadeler java veya c’deki gibi int a=3+6; şeklinde yazılmaz.Bunun lispteki karşılığı tam olarak (setq a(+ 3 6)) şeklindedir.
Örneğin;
(defun islem1()
(setq sonuc(+(-(* 1 2)4)6)))
· İşlemi sonuc=(((1*2)-4)+6) ifadesine denk gelir.Benzer bir islemde daha gösterecek olursak;
(defun cikarma()
(- 9 3 5 1 2) ) işlemi sonuç olarak -2 verecektir.
· İfadelerden de anlaşılacağı gibi lispte operatörler sola dayalı yazılır ve önce parantez içleri işlem görür.Örnek verecek olursak;
(/ 6 (/ 3 2)) = (6 / (3/2)) =1
(-(+(* 1 2)9)4) = ((9+(1*2))-4 = 7
· (setq bol(/ 6 3 2)) = {bol = (6/3)/2} = 1
Burada dikkat edilecek nokta işlemlerin sola dayalı yapılacağıdır.
· Devam edersek;
(/ 5 3) =1.6666 değildir..(5/3) tür..
· (defun bolme1()
(/ 10 4) ) işleminin sonucu 5/2 dir.
· Fakat;
(/ 5.0 3) = 1.666667 olur.
Bolmede rasyonel değer sonuç almak yerine reel sayı almak istiyorsak argümanlardan birini reel yapmalıyız.
· (defun bolme2()
(setq s1(+(/ 5 3) 2))
(setq s2(+(/ 5.0 3) 2)) )
İfadesi için s1={11/3} iken s2=3.666667 dir.
· Hazır fonksiyonlara bakacak olursak;
· (sqrt 16) = 4 , (sqrt 34) = 5.830 “karekök”
· (expt 4 0.5) =2 , (expt 3 3) = 27 “genel”
· Örnek programa bakacak olursak;
(defun us(n m)
(expt n m) )
İfadesi genel bir üs alma ifadesidir. (us 16 0.5) diye çağırırsak 4 değerini döndürecektir.
· (random 5) à 0 ve 5 arası rastgele sayı üretir.
· (abs -8) = 8 àargümanın mutlak değerini alır.
( let x 2.67) için;
· (floor x) à 2 tabana göre yuvarlama yaptı.
· (ceiling x) à3 alabileceği en yüksek tamsayıya göre yuvarlama yapar.
· (round x) à 3 ondalıklı kısma göre yuvarlama yaptı.0.5 ten büyük olduğu için sonuç 3 oldu.

Listeler
· Listeler, belirli özelliklere göre oluşturulmuş nesneler kümesidir. Değişik amaçlar için kullanılabilirler.
· Listelerin önüne kesme işareti( ‘ ) konulur. Bu listeler ile fonksiyonların ayırt edilmesini sağlar.Gelen verinin fonksiyon değil de data olarak algılanmasını sağlar.
· Fonksiyonlarda olduğu gibi listeler de parantez içine yazılır.
· Listenin içeriği ve listede kaç tane değer olacağı hakkında bir sınırlama yoktur.
· Listede elemanların boşluk içermemesi gerekir ; çünkü listede boşluk ,eleman ayırma

Benim bula bildiğim diller bu kadar c++ c# vb.net vb6 delphi java hepsinin derslerini verdim.
bu bir ilk oldu sormak istedikleriniz varsa buradan belirtin bütün dilleri araştırdım burada paylaştıklarımı 1-2 tane paylaşmadım internette bildirimleri yok cünki arkadaşlar
onlarıda bulursam yakın bir zamanda paylaşacağım. iyi bir ders oldu yorumlarınızı eksik tutmayınız.
Alıntı ile Cevapla
Yeni Konu aç  Cevapla

Etiketler
dilleri3, programlama

Seçenekler
Stil


Saat: 23:48

Forum Yasal Uyarı
vBulletin® ile Oluşturuldu
Copyright © 2016 vBulletin Solutions, Inc. All rights reserved.

ForumSevgisi.Com Her Hakkı Saklıdır
Tema Tasarım:
Kronik Depresif


Sitemiz bir 'paylaşım' sitesidir. Bu yüzden sitemize kayıt olan herkes kontrol edilmeksizin mesaj/konu/resim paylaşabiliyorlar. Bu sebepten ötürü, sitemizdeki mesaj ya da konulardan doğabilecek yasal sorumluluklar o yazıyı paylaşan kullanıcıya aittir ve iletişim adresine mail atıldığı taktirde mesaj ya da konu en fazla 48 saat içerisinde silinecektir.

ankara escort, izmir escort ankara escort, ankara escort bayan, eryaman escort, bursa escort pendik escort, antalya escort,