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. 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 tamsayı ideal bir seçimdir. Bu tamsayı 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 tamsayı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 
Jeton, 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

Ayrıca bakınız 

 Kaynak kod
 Derleyici
 Yorumlayıcı
 Algoritma

Derleyici yapımı
Ayrıştırma