Show simple item record

dc.contributor.advisorVargün, Aytekin
dc.contributor.authorWakhid, Ayub Rokhman
dc.date.accessioned2021-05-08T09:48:44Z
dc.date.available2021-05-08T09:48:44Z
dc.date.submitted2014
dc.date.issued2018-08-06
dc.identifier.urihttps://acikbilim.yok.gov.tr/handle/20.500.12812/666362
dc.description.abstractBu tezde, büyük ölçekli yazılım oluşturabilmek için kullanılabilecek yüksek düzeyde doğruluğa sahip ve güvenilir fonksyonların formal tanımlarından oluşan bir kütüphane üretildi. Büyük programların doğruluğunu ve güvenliğini ispatlamak zor olmasına ragmen, eğer kendisinin bileşenlerinin doğruluğu ve/veya güvenliği önceden gösterilebilirse bu işlem yapılabilir. Benzer bir yaklaşım STL'nin pek çok kullanışlı küçük ölçekli prosedürler ve fonksiyonlar sağladığı C++'ta kullanılmaktadır. Yazılım doğruluğunu kontrol etmek için en güçlü yöntemlerden biri formal yöntemleri kullanmaktır. Bu araştırmada, programların özelliklerini yazmak ve onların tanımlanan özellikler açısından doğru ve güvenli olduğunu ispatlamak için Athena isimli bir teorem ispatlayıcı kullanılmıştır. Aksiyomatik tanımlar ve ispatlar prefix notasyonu ile karşılaştırıldığında daha okunabilir ve kısa ifadelerin yazılmasını sağlayan infix notasyonunda yapılmıştır. Athena'da CODEGEN adı verilen bir program, aksiyomlar ve teoremlerden kod üretmek için kullanılabilmektedir. Fakat bu program sadece prefix notasyonundaki tanımlarla çalışır. Onun infix notasyonlarla çalışmasını mümkün kılmak için aksiyomatik tanımları infix notasyonundan prefix notasyonuna dönüştüren bir program Java'da yazılmıştır. Son olarak bu tezde infix notasyonuyla bellek tanımı yapılmış ve böylelikle bellekte güncelleme yapan programların üretilmesi sağlanmıştır.
dc.description.abstractIn this thesis, a specification library of highly correct and safe functions which can be used to compose large scale software is constructed. Although it is hard to prove the correctness and safety of large programs, it can be done if the correctness and/or safety of its components are shown beforehand. A similar approach is used in C++ where STL provides many useful small-scale procedures and functions. One of the strongest methods to verify software correctness is to use formal methods. In this research, Athena has been used as a theorem prover to write specifications of programs and prove that they are correct and safe with respect to the given specifications. The axiomatic definitions and the proofs are written in infix notation which makes them more readable and shorter with respect to the prefix notation. In Athena a program called CODEGEN can be used to extract code from the axioms and theorems. But it only works with the definitions in the prefix notation. In order to make it work with the infix definitions, a program that converts axiomatic definitions in infix notation to prefix notation is implemented in Java. The last contribution of this thesis is to define memory by using the infix notation to make it possible to generate code that updates memory locations.en_US
dc.languageEnglish
dc.language.isoen
dc.rightsinfo:eu-repo/semantics/openAccess
dc.rightsAttribution 4.0 United Statestr_TR
dc.rights.urihttps://creativecommons.org/licenses/by/4.0/
dc.subjectBilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontroltr_TR
dc.subjectComputer Engineering and Computer Science and Controlen_US
dc.titleGenerating libraries of highly correct and safe functions by using proof-based formal methods
dc.title.alternativeİspat-tabanlı yazılım doğruluğu ve güvenilirliğini gösterme tekniklerini kullanarak güvenilir bir kütüphane oluşturmak
dc.typemasterThesis
dc.date.updated2018-08-06
dc.contributor.departmentElektrik ve Bilgisayar Mühendisliği Ana Bilim Dalı
dc.identifier.yokid10049405
dc.publisher.instituteFen Bilimleri Enstitüsü
dc.publisher.universityMELİKŞAH ÜNİVERSİTESİ
dc.identifier.thesisid374441
dc.description.pages120
dc.publisher.disciplineDiğer


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record

info:eu-repo/semantics/openAccess
Except where otherwise noted, this item's license is described as info:eu-repo/semantics/openAccess