TUGAS MID
Teknik kompilasi

NAMA : FAIZAL
STB : 13020100110
KELAS : TI.L5.5
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS ILMU KOMPUTER
UNIVERSITAS MUSLIM INDONESIA
MAKASSAR
2013
Parsing or syntactic
analysis is the process of analysing a string of
symbols, either in natural language or in computer
languages, according
to the rules of a formal
grammar. The term parsing
comes from Latin pars (ōrātiōnis), meaning part (of speech).[1][2]
The
term has slightly different meanings in different branches of linguistics and computer science. Traditional sentence parsing is
often performed as a pedagogical exercise, especially in inflected languages such as the Romance languages or Latin, sometimes with the aid of devices such as sentence diagrams. It usually emphasizes the importance
of traditional divisions such as subject and predicate.
Within
computational
linguistics the term
is used to refer to the formal analysis by computer of a sentence or other
string of words into its constituents, resulting in a parse tree showing their syntactic relation to
each other, which may also contain semantic and other information.
The
term is also used in psycholinguistics when describing language
comprehension. In this context, parsing refers to the way that human beings
analyze a sentence or phrase (in spoken language or text) "in terms of
grammatical constituents, identifying the parts of speech, syntactic relations,
etc." [2] This term is especially common when
discussing what linguistic cues help speakers to interpret garden-path
sentences.
Within
computer science, the term is used in the analysis of computer
languages, referring
to the syntactic analysis of the input code into its component parts in order
to facilitate the writing of compilers and interpreters.
Analisis leksikal adalah sebuah proses yang mendahului parsing
sebuah rangkaian karakter. Ia menerima masukan serangkaian karakter (seperti
dalam dokumen plain-text atau source code) dan menghasilkan deretan simbol yang
masing-masing dinamakan token; proses parsing akan lebih mudah dilakukan
bila inputnya sudah berupa token.
Analisis leksikal terdiri dari dua tahap. Tahap pertama
adalah pemindaian (scanning); scanner biasanya dibuat
berdasarkan prinsip Finite State Machine ("mesin dengan jumlah keadaan
terbatas"). Pada tahap ini, scanner akan membaca input
karakter-ke-karakter, mengubah keadaannya sendiri berdasarkan karakter yang
tengah dibaca. Setiap kondisi final (input dianggap valid) akan dicatat,
bersama dengan lokasi input. Pada akhirnya scanner akan menemui keadaan
penolakan, yang tidak akan berubah dengan input karakter apapun. Deteksi
rekursi semacam ini akan mengakhiri proses pemindaian dan memindahkan keadaan
scanner ke keadaan final terakhir, dan karenanya menyimpan informasi jenis dan
besar lexeme valid yang terpanjang di dalam input.
Namun lexeme tersebut belum punya nilai semantik apapun;
pemberian nilai semantik pada setiap unit leksikal adalah tugas dari evaluator
yang memeriksa semua karakter setiap lexeme dan memberinya nilai tertentu. Saat
sebuah lexeme telah memiliki informasi mengenai tipe dan nilainya, ia dapat
secara valid disebut sebagai token.
Analisis leksikal membuat pekerjaan membuat sebuah parser
jadi lebih mudah; ketimbang membangun nama setiap fungsi dan variabel dari
karakter-karakter yang menyusunnya, dengan analisis leksikal parser cukup hanya
berurusan dengan sekumpulan token dan nilai sintaksis masing-masing. Terlepas
dari efisiensi pemrograman yang dapat dicapai dengan penggunaannya, proses
kerja analisis leksikal yang membaca lebih dari sekali setiap karakter dari
input yang diberikan menjadikan penganalisa leksikal sebagai sub-sistem
yang paling intensif melakukan komputasi, terutama bila digunakan dalam sebuah
Tidak ada komentar:
Posting Komentar