Session 2 (Describing Syntax and Semantics)
December 16th, 2016 - Posted by: vaniasalsabella in Uncategorized- C
Pengenalan Bahasa C
- C adalah bahasa pemrograman yang digunakan sebagai dasar bahasa pemrograman lain, seperti C# dan C++
- C merupakan hasil pengembangan dari bahasa BCPL oleh Martin Richards (1966), bahasa B oleh Ken Thompson (1970), dan kemudian menjadi bahasa C oleh Dennis Ritchie.
- C termasuk bahasa pemrograman tingkat menengah.
- C digunakan untuk merancang berbagai aplikasi dan sistem operasi seperti DOTA dan Windows.
Kelebihan
- Tersedia untuk semua sistem operasi
- Sedikit kata kunci
- Terstruktur sehingga mudah dipahami
- Digunakan banyak orang
Kekurangan
- Banyaknya operator
- Pointer (penanda alamat) yang susah dipahami
Versi
- C K&R
- ANSI C dan ISO C
- C99
Cara Penggunaan
#include <stdio.h>
int main()
{
statement;
getchar ();
return 0;
}
Structure Theorem
- Sequence
Tahapan algoritma
- Selection
Seleksi kondisi sesuai syarat yang dimasukkan
- Repetition
Pengulangan untuk kondisi
#include <stdio.h>
int main ()
{
int total = 0;
int gradeCounter = 0;
int grade = 0;
int gradeAverage = 0;
while (gradeCounter < 10){
printf(“Masukkan 10 nilai murid : \n”);
scanf (“%d” , &grade);
total = total + grade;
gradeCounter++;
}
fflush (stdin);
gradeAverage = total /10;
printf(“the average is %d\n”, gradeAverage);
if (gradeAverage >= 70){
printf (“PASS!\n”);}
else{
printf(“FAILED!\n”);}
getchar();
return 0;
}
Syntax-Semantic
Syntax : aturan penulisan untuk setiap statement
Semantic : arti dari statement
- C
- Syntax
Syntax adalah aturan penulisan untuk setiap statement pada bahasa C
- Semantic
- Operational Semantic (operasi matematika)
- Denotational Semantic (looping)
- Axiomatic Semantic (if, and, or)
Catatan jika syntax sudah benar namun menurut semantic salah, kemungkinan karena virus atau memori yang digunakan sudah tidak mencukupi.
- General Problem in C
- Recognizer
- Generators
- Ambiguous
Ex. int float = 0;
float adalah keyword yang tidak bisa dijadikan variabel
nilaiAkhir = 20/100*TM + 30/100*UTS + 50/100*UAS
ambigu jika tipe data yang digunakan adalah int karena hasil dari 20/100 adalah desimal, sementara int tidak membaca hasil desimal
- Grammar
Backus Naur Form (BNF)
Context – Free Grammar