Lexical Analiz


Lexical Analysis (Leksik Analiz), bir programlama dilinin kaynak kodunu karakter dizileri halinde okuyarak, bu karakter dizilerini daha anlamlı bir şekilde tanımlayan ve bunları tokenlara ayıran bir işlemdir. Bu tokenlar, bir programlama dilinde kullanılan sembolik kelimelerdir ve yorumlayıcının veya derleyicinin daha kolay bir şekilde anlamasına ve işlemesine olanak tanır.

Leksik Analiz aynı zamanda "tokenleştirme" olarak da bilinir. Bir programlama dilinin kaynak kodunu tokenlara ayırarak, kodu daha kolay anlaşılabilir ve yönetilebilir hale getirir. Ayrıca, derleyiciler ve yorumlayıcılar, leksik analiz yoluyla kaynak kodunda oluşabilecek hataları tespit edebilir ve kullanıcıya geri bildirim sağlayabilir.

Örneğin, bir C programının kaynak kodunda leksik analiz yapıldığında, kaynak kodundaki karakter dizileri ayrı ayrı tokenlara ayrılır. Örneğin, "for" kelimesi, C programlama dilinde döngüleri tanımlamak için kullanılan bir anahtar kelimedir ve leksik analiz işlemi sırasında "for" kelimesi "for" tokenı olarak tanımlanır.

Leksik analiz, programlama dillerinin yürütülmesinde önemli bir rol oynayan ilk adımdır ve bu nedenle birçok derleyici veya yorumlayıcıda bulunmaktadır.

Lexial (Leksik) Analiz örneği:

C# programında leksikal analiz, kodunuzu "if", ""for", "int", "double" gibi anahtar kelimeleri, değişken adlarını, operatörleri ve diğer belirteçleri tanımlayan tokenlere ayırır.

using System;

class Program

{

    static void Main(string[] args)

    {

        int number1 = 10;

        int number2 = 20;

        int sum = number1 + number2;

        Console.WriteLine("Sum: " + sum);

    }

}

Yukarıdaki Kodun Leksikal Analizi: 

"using", "System", ";" gibi anahtar kelimeler ve semboller. 
"class", "Program", "{", "}", gibi anahtar kelimeler ve semboller. 
"static", "void", "Main", "(", ")", "{" gibi anahtar kelimeler ve semboller. 
"int", "number1", "=", "10", ";", "number2", "=", "20", ";", "sum", "=", "number1", "+", "number2", ";", "Console", ".", "WriteLine", "(", ")", ";" gibi anahtar kelimeler ve semboller. 

Bu örnek, bir C# programının leksikal analizini temsil eder. Bu analiz, kodu küçük parçalara ayırır ve her parçayı dilin yapılarına karşılık gelen belirteçlerle eşleştirir. Bu belirteçler daha sonra dilbilgisel analiz için kullanılabilir. 

Lexial (Leksikal) Analiz Örneği 2:

#include <stdio.h>

int main() {
    int number1 = 10;
    int number2 = 20;
    int sum = number1 + number2;
    printf("Sum: %d\n", sum);
    return 0;
}

"#include", "<stdio.h>", ";" gibi anahtar kelimeler ve semboller. 
"int", "main", "(", ")", "{", "}", gibi anahtar kelimeler ve semboller. 
"int", "number1", "=", "10", ";", "number2", "=", "20", ";", "sum", "=", "number1", "+", "number2", ";", "printf", "(", ")", ";", ""Sum: %d\n"", ",", "sum", ",", ""Sum: %d\n"", ",", "return", "0", ";" gibi anahtar kelimeler ve semboller. 

Bu örnek, bir C programının leksikal analizini temsil eder. Bu analiz, kodu küçük parçalara ayırır ve her parçayı dilin yapılarına karşılık gelen belirteçlerle eşleştirir. Bu belirteçler daha sonra dilbilgisel analiz için kullanılabilir. 


Programlama dillerinde kullanılan diğer analiz türleri vardır. Bu analiz türleri şunlardır:

1. Sentaks Analizi (Syntax Analysis): Programlama dili tarafından tanımlanan sentaks kurallarına uygunluğun kontrol edildiği analiz türüdür. Sentaks analizi, kaynak kodun doğru bir şekilde yazılmış olup olmadığını kontrol eder.

2. Semantik Analiz (Semantic Analysis): Semantik analiz, kaynak kodun anlamlı olup olmadığını kontrol eder. Programlama dili tarafından tanımlanan semantik kurallara uygunluğun kontrol edildiği analiz türüdür.

3. İşlemsel Analiz (Operational Analysis): İşlemsel analiz, bir programın belirli bir işlevi yerine getirip getirmediğini kontrol eder. Bu analiz türü, programın doğru bir şekilde çalıştığından emin olmak için kullanılır.


Örnek olarak, bir C programının kaynak kodunu düşünelim. Leksik analiz işlemi sırasında, kaynak kodu karakter dizilerine bölerek, sembolik kelimeleri (tokenleri) tanımlarız. Sentaks analizi işlemi sırasında, kaynak kodun C dilinde tanımlanan sentaks kurallarına uygunluğunu kontrol ederiz. Semantik analiz işlemi sırasında, kaynak kodun anlamlı olup olmadığını kontrol ederiz. İşlemsel analiz ise, programın belirli bir işlevi doğru bir şekilde yerine getirip getirmediğini kontrol eder.

Yorumlar

  1. Aklınıza takılan bir şey olursa sormaktan çekinmeyin. b0564

    YanıtlaSil

Yorum Gönder

Sitedeki popüler yayınlar:

Algoritma Mantığı Nedir? Algoritma Türleri Nelerdir?

C++ For Döngüsü

Kontrol Sistemleri