Jumat, 12 April 2013

ANother Tool for Language Recognition (ANTLR)


Definisi ANother Tool for Language Recognition (ANTLR)


ANTLR, ANother Tool for Language Recognition, berdasarkan artikel “An Introduction   to   ANTLR”,   adalah   sebuah   alat   bantu   yang   menerima   deskripsi grammatical dari sebuah language dan membentuk program yang mengenali sentence dalam language tersebut. Sebagai bagian dari translator, kita dapat menambah grammar dengan operator dan action untuk memberi pedoman pada ANTLR bagaimana membentuk AST (Abstract Syntax Tree) dan output. ANTLR mengimplementasikan strategi parsing LL(k) dan sanggup melakukan sejumlah lookahead dalam menangani grammar yang ambigu.

ANTLR dapat membentuk recognizer dengan grammar yang sesuai untuk 3 jenis input, yaitu character streams, token streams, dan two dimensional tree. Dengan 3 input tersebut ANTLR akan menghasilkan program lexer untuk menangani input berupa character streams, parser untuk menangani token streams yang dihasilkan oleh lexer, dan treeparser untuk menangani two dimensional tree jika dibutuhkan.

ANTLR dikembangkan oleh Terence Parr seorang Profesor dari Universitas San Francisco pada tahun 1989. Bersama dengan beberapa temannya Terrence Parr telah  memberikan sejumlah kontribusi dasar pada teori parsing dan alat bantu untuk pengenalan language. Hal ini berdampak pada pengembangan penggunaan alat bantu pengenalan bahasa berdasarkan metode parsing LL(k).


ANTLR Tree


Berdasarkan artikel ANTRL Tree Construction”, ANTLR dapat membentuk intermediate form tree, atau abstract syntax tree, dengan menambahkan simbol-simbol tertentu pada grammar untuk mengindikasikan token yang menjadi root dari subtree, token yang menjadi leaves, dan token yang harus diabaikan pada saat pembentukan tree. Root node untuk pembentukan AST pada ANTLR, ditentukan dengan menambahkan tanda “^” pada akhir dari sebuah token (sufix). Sedangkan untuk leaf node, setiap referensinya ke nonsuffixed token atau token-range dianggap sebagai leaf node untuk rule tersebut.


 sumber :

0 komentar:

Posting Komentar