Sözcüksel analiz
Bilgisayar biliminde, Lexer sözcüksel analiz gerçekleştiren program parçasının adıdır. Türkçede direkt çevirisinin yapılabileceği doğru bir kelime olmayan terimlerden biri denebilir. Sözcüksel analiz kaynak kod üstünde gerçekleştirilen bir eylemdir.[1] Sözcüksel analiz sonucunca kaynak kodun program tarafından incelenip ayrıştırılarak anahtar kelime, operatör ya da tanımlayıcılar gibi her bir ögesinin jeton olarak temsili elde edilir.
Sözcüksel analizin nasıl gerçekleştirileceği elbette yazılım geliştiricinin algoritma tasarımına kalmıştır. Her bir jeton, sözcüksek analiz gerçekleştirilirken belirli bir anlam ifade etmesi için lexer tarafından oluşturulur. Bahsi geçen anlamı kazanabilmesi için her bir jetona belirli veriler atanmalıdır. En önemli veri jetonun temsil ettiği ögenin tipidir. Bu bir tür kimliktir, her bir tür için benzersiz bir tam sayı ideal bir seçimdir. Bu tam sayı değerine göre jetonun bir anahtar kelime, operatör, tanımlayıcı ya da farklı bir şey olduğu karakterize edilir. İkinci veri ise ögenin türüdür. Örneğin jeton bir operatör lakin hangi operatör, bunun için metin türünde bir tür verisi tutmak ideal bir seçimdir. Bunların yanı sıra yazılım geliştiricinin yazılım tasarımına göre satır ve sütün verileri, hangi kaynak kod dosyasından ayrıştırıldığı gibi ek bilgiler de depolanabilir. Karakterizasyon yaklaşımı olarak operatör, anahtar kelime gibi belirli bir grubu temsil etmek yerine direkt olarak her bir anahtar kelime, operatör ve diğer dil ögelerine benzersiz bir kimlik tam sayısı ataması da gerçekleştirilebilir.
Lexer algoritması dilin tasarımına göre değişiklik göstermelidir. Örneğin Python gibi sözdizimsel olarak girintiye (indention) dayalı ise, her bir girinti için jeton oluşturma ya da farklı bir yaklaşım benimsenebilir. Aksi halde bu tarz karakterler anlam ifade etmiyorsa, boşluk karakterlerinin atlanması gerekebilir. Mantıksal olarak tanımlanamayan bir jeton hata sebebi olmalıdır.
Jeton
değiştirJeton, bir programın derleyici için anlamlı en küçük parçasıdır. Programın jetonlara ayrılması, derleyicinin programı kendi diline çevirebilmesi açısından önemlidir. Jetonlar birbirlerinden genellikle boşluk karakteri ile ayrılırlar. Boş satır, yeni satır ya da açıklama gibi öğeler de jetonları birbirinden ayırmaya yarar. a = i + j örneğinde jetonlar "a", "=", "i", "+" ve "j" karakterleridir.
Jeton örnekleri
değiştirTip | Tür (Jeton Değeri) |
---|---|
Anahtar Kelime | while for case else
|
Operatör | < == << &&
|
Tanımlayıcı | name surname pi_number counter
|
Yorum | /* A comment */
|
Sabit Değer (Literal) | true 'a' "Hello World" 3.14
|
Ayrıca bakınız
değiştirKaynakça
değiştir- ^ Akçay, İbrahim (2004). "Derleyici Tasarımda Sözcük ve Sözdizim Analizi Gerçekleşmesi". Sakarya Üniversitesi Fen Bilimleri Enstitüsü. 26 Mart 2024 tarihinde kaynağından arşivlendi. Erişim tarihi: 27 Mart 2024.