SINTAKSIS
Dalam ilmu komputer, istilah sintaks bahasa komputer mengacu pada seperangkat aturan yang menentukan kombinasi simbol yang dianggap sebagai fragmen atau dokumen yang terstruktur dengan benar dalam bahasa itu. Ini berlaku baik untuk bahasa markup, di mana dokumen merepresentasikan data dan bahasa pemrograman, di mana dokumen merepresentasikan kode sumber. Sintaks bahasa mendefinisikan bentuk permukaannya. Bahasa komputer yang berbasis teks didasarkan pada urutan karakter. Bahasa pemrograman visual di sisi lain didasarkan pada hubungan antara simbol (yang mungkin grafis atau tekstual) dan tata letak spasial. Dokumen yang secara sintaksis tidak valid dikatakan memiliki kesalahan sintaksis.
Sintaks – bentuk – dikontraskan dengan semantik – makna. Dalam pemrosesan bahasa komputer, pemrosesan semantik biasanya muncul setelah pemrosesan sintaksis. Namun, dalam beberapa kasus pemrosesan semantik penting untuk analisis sintaksis lengkap, dan oleh karena itu dilakukan secara bersamaan atau bersama-sama. Dalam kompiler, analisis sintaksis terdiri dari ujung depan, sedangkan analisis semantik terdiri dari ujung belakang (dan ujung tengah dalam kasus di mana fase dibedakan).
TINGKAT SINTAKS
Sintaks bahasa komputer biasanya dibedakan menjadi tiga tingkatan yang berbeda:
Membedakan sedemikian rupa menghasilkan modularitas yang memungkinkan setiap level dijelaskan serta diproses secara terpisah, dan seringkali secara mandiri. Ini dimulai dengan lexer mengubah urutan linier karakter menjadi urutan linier token: ini disebut sebagai analisis leksikal atau lexing .
Kedua, parser mengubah urutan linier token menjadi apa yang disebut pohon sintaks hierarkis. Ini disebut sebagai penguraian .
Ketiga, analisis kontekstual menyelesaikan jenis cek dan nama. Tahap parsing itu sendiri dapat dibagi menjadi dua bagian: pohon sintaks konkret atau pohon parse yang ditentukan oleh tata bahasa, tetapi terlalu detail untuk penggunaan praktis, dan pohon sintaks abstrak (AST), yang menyederhanakan ini menjadi bentuk yang dapat digunakan.
SINTAKS VERSUS SEMANTIK
Sintaks suatu bahasa menggambarkan bentuk program yang valid, tetapi tidak memberikan informasi apa pun mengenai arti program atau hasil yang diperoleh dengan mengeksekusi program tersebut. Makna yang diberikan pada kombinasi simbol ditangani oleh semantik (baik kode keras atau formal dalam implementasi referensi). Tidak semua program yang benar secara sintaksis benar secara semantik. Sejumlah besar program yang benar secara sintaksis tetap dibuat dengan buruk, sesuai aturan bahasa; dan dapat (berkaitan dengan spesifikasi bahasa serta kelayakan penerapannya) mengakibatkan kesalahan pada eksekusi atau terjemahan. Dalam beberapa kasus, program semacam itu dapat menunjukkan perilaku yang tidak terdefinisi. Bahkan pada saat suatu program didefinisikan dengan baik dalam suatu bahasa, itu masih dapat memiliki arti yang tidak dimaksudkan oleh penulisnya.
Dalam contoh bahasa alami, mungkin tidak mungkin memberi arti pada kalimat yang secara tata bahasa benar. Misalnya,