Geri Dön

Java 1.5 programlama dili için bir ayrıştırıcı tasarımı ve gerçekleştirimi

Design and implementation of a parser for Java 1.5 programming language

  1. Tez No: 309565
  2. Yazar: MÜMÜNE ÖZÇETİN
  3. Danışmanlar: DOÇ. DR. İSMAİL KADAYIF
  4. Tez Türü: Yüksek Lisans
  5. Konular: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol, Computer Engineering and Computer Science and Control
  6. Anahtar Kelimeler: Belirtilmemiş.
  7. Yıl: 2012
  8. Dil: Türkçe
  9. Üniversite: Çanakkale Onsekiz Mart Üniversitesi
  10. Enstitü: Fen Bilimleri Enstitüsü
  11. Ana Bilim Dalı: Bilgisayar Mühendisliği Ana Bilim Dalı
  12. Bilim Dalı: Belirtilmemiş.
  13. Sayfa Sayısı: Belirtilmemiş.

Özet

Ayrıştırıcı, bazı özel kurallara göre yazılan bir metni ayrıştıran ve metni bellekte özel bir veri yapısıyla temsil eden bir programdır. Ayrıştırıcılar bilgisayar biliminde değişik alanlarda kullanılabilir. Onlar bir programlama dilinde yazılan programı başka bir programlama dilinde yazılan programa dönüştüren derleyicilerde ara bir adım olarak kullanılabilir. Ayrıca onlar doğal dil işlemede de yaygın olarak kullanılmaktadır.Bu tezde, Java 1.5 belirtimine dayalı programlar için bir ayrıştırıcı tasarlamaya ve gerçekleştirmeye çalıştık. Yazılım araçları olarak otomatik tarayıcı üreteci olan JFlex ve otomatik ayrıştırıcı üreteci olan CUP'ı kullandık. JFlex, tokenları tanımlamak için düzenli ifadeleri kullanır. CUP, dilin sözdizimsel kurallarını belirtmek için içerikten bağımsız gramerleri kullanır. CUP, çoğu programlama dilini ayrıştırabilen yukarıdan aşağı LALR ayrıştırıcıları üretir. Bizim ayrıştırıcımız birden fazla Java dosyasını ayrıştırabilir ve onları tek bir ayrıştırıcı ağacı olarak temsil edebilir. Ayrıştırıcımızın doğru çalıştığını test etmek için şu adımlar uygulanır. Orijinal Java dosyalarını ayrıştırdıktan sonra, ayrıştırma ağacını dolaşarak yeni Java dosyaları diske yazdırılır. Bu yazdırılan dosyalar, dosyalarımızın ilk grubunu oluşturur. Daha sonra ilk grupta yazdırılan Java dosyaları, ayrıştırıcımıza girdi teşkil eder ve ilgili ayrıştırma ağacı dolaşılarak ikinci grubu oluşturan yeni dosyalara yazdırılır. Birinci gruptaki her bir Java dosyası ikinci gruptaki ilgili Java dosyası ile karşılaştırılır. Her iki gruptaki karşılıklı dosyaların birebir aynı olduğu görülür.

Özet (Çeviri)

A parser is a program that parses a text written according to some specific rules and represents the text in memory with an appropriate data structure. Parsers can be used in a variety of areas in computer science. They can be used as an intermediate step in compilers that convert a programming language program into another programming language program. They are also extensively used in natural language processing.In this thesis, we try to design and implement a parser targeting at programs based on Java 1.5 specifications. We use JFlex and CUP software tools as an automatic scanner generator and an automatic parser generator. JFlex employs regular expressions to identify tokens. CUP uses context free grammars to specify the language's syntactic rules. It produces top-down LALR parsers via which most of the programming languages can be parsed. Our parser can parse multiple Java files and represent them as a single parse tree. To test if our parser runs correctly we apply the following steps. After parsing original Java files we traverse the parse tree and dump it into new Java files. These dumped files constitute our first group of files. Then the dumped Java files in the first group are fed into our parser and the corresponding parse tree is dumped into another set of files, which constitute our second group of files. We compare each Java file in the first group with the corresponding Java file in the second group. After extensive experiments, we see that the compared Java files have a verbatim text.

Benzer Tezler

  1. A Web based graphical user interface for parallel machine scheduling

    Özdeş makine çizelgelemesi için web tabanlı grafiksel kullanıcı arayüzü

    M. KORAY ÇANDIR

    Yüksek Lisans

    İngilizce

    İngilizce

    1999

    İşletmeOrta Doğu Teknik Üniversitesi

    İşletme Ana Bilim Dalı

    YRD. DOÇ. DR. CEMAL AKYOL

  2. Matematiksel mantık ile programlama

    Programming with mathematical logic

    YEŞİM GÖĞÜN

    Yüksek Lisans

    Türkçe

    Türkçe

    2002

    MatematikHacettepe Üniversitesi

    Matematik Ana Bilim Dalı

    PROF. DR. L. MİCHAEL BROWN

  3. Short-term wind energy prediction system by using mesoscale/microscale modelling with model output statistics on various terrain types

    Model çıktılarının istatistiği ile orta ölçek/mikro ölçek modelleri kullanılarak çeşitli arazi tipleri için kısa dönem rüzgar enerjisi tahmin sistemi

    DERYA ERGÜN

    Yüksek Lisans

    İngilizce

    İngilizce

    2017

    Meteorolojiİstanbul Teknik Üniversitesi

    Meteoroloji Mühendisliği Ana Bilim Dalı

    PROF. DR. ŞÜKRAN SİBEL MENTEŞ

    DR. GREGOR GIEBEL

  4. A computational approach to create aperiodic tilings through orthographic projection of the nd cube

    Çok boyutlu küpün ortografik projeksiyonu ile aperiyodik yüzey kaplamaları oluşturmaya hesaplamalı bir yaklaşım

    MERVE AKDOĞAN

    Yüksek Lisans

    İngilizce

    İngilizce

    2019

    Mimarlıkİstanbul Teknik Üniversitesi

    Bilişim Ana Bilim Dalı

    DOÇ. DR. SEMA ALAÇAM

  5. Biyogaz yakıtlı motor ile tahrik edilen süt soğutma sisteminin geliştirilmesi

    Development of milk cooling system driven by biogas fuel engine

    NEVFEL YUNUS COŞKUN

    Doktora

    Türkçe

    Türkçe

    2023

    Mühendislik BilimleriYozgat Bozok Üniversitesi

    Makine Mühendisliği Ana Bilim Dalı

    DOÇ. DR. HALİL ATALAY