Fall 2021: System Programming Lab
Jump to navigation
Jump to search
Contents
- 1 Resources
- 2 Lab 1: Getting Started ( week of 02nd August 2021 )
- 3 Lab 2: ( week of 09th August 2021 )
- 4 Lab 3: ( week of 23rd August 2021 )
- 5 Lab 4 and Lab 5: ( week of 06th & 13thSeptember 2021 )
- 6 Lab 6: ( week of 20th September 2021 )
- 7 Lab 7: Last week of Lex ( week of 27th September 2021 )
- 8 YACC Programs
Resources
- An introductory tutorial on Lex.
- LEX & YACC TUTORIAL by Tom Niemann [1]
- Lex on Windows [2]
- YACC tutorial on geeksforgeeks
Lab 1: Getting Started ( week of 02nd August 2021 )
Q. NO. | Program | Lab Exercise No. | Remarks |
---|---|---|---|
1 | Write a Lex program to count the number of lines and characters in the input file. | Lab Exercise No. 1 | |
2 | Write a Lex Program to count number of words. | Practice Set No. 1(1) | |
3 | Write a Lex Program to count the number of lines, tabs and spaces used in the input. | Practice Set No. 1(2) | |
4 | Write a Lex Program to count the number of lines, words, small letters, capital letters, digits, special characters, and finally all characters. | Practice Set No. 1(3) |
Lab 2: ( week of 09th August 2021 )
Q. NO. | Program | Lab Exercise No. | Remarks |
---|---|---|---|
1 | Write a Lex program that implements the Caesar cipher. It replaces every letter with the one three letters after(right shift) in an alphabetical order, wrapping around at Z e.g a is replaced by d ,b by e ,and so on z by c. | Lab Exercise No. 2 | Read about Caesar Cipher from [3] |
Lab 3: ( week of 23rd August 2021 )
Q. NO. | Program | Lab Exercise No. | Remarks |
---|---|---|---|
1 | Write a Lex program that finds the longest word (defined as a contiguous string of upper and lower case letters) in the input. | Lab Exercise No. 3 | |
2 | Write a Lex program that distinguishes keywords, integers, floats, identifiers, operators, and comments in any simple programming language. | Lab Exercise No. 4 |
Lab 4 and Lab 5: ( week of 06th & 13thSeptember 2021 )
Q. NO. | Program | Lab Exercise No. | Remarks |
---|---|---|---|
1 | Write a Lex program to count the number of identifiers in a c file. | Lab Exercise No. 5 | |
2 | Write a Lex program to count the number of words ,characters ,blank spaces and lines in c file. | Lab Exercise No. 6 |
Lab 6: ( week of 20th September 2021 )
Q. NO. | Program | Lab Exercise No. | Remarks |
---|---|---|---|
1 | Write a Lex specification program that generates a C program which takes a string “abcd” and prints the following output: abcd |
Lab Exercise No. 7 | |
2 | Write a Lex program to recognize a valid arithmetic expression. | Lab Exercise No. 8 |
Lab 7: Last week of Lex ( week of 27th September 2021 )
Q. NO. | Program | Lab Exercise No. | Remarks |
---|---|---|---|
Complete all the Lex programs (1-8) |
YACC Programs
Q. NO. | Program | Lab Exercise No. | Remarks |
---|---|---|---|
1 | A Program in YACC to evaluate an expression (simple calculator program for addition and subtraction, multiplication, division). | Lab Exercise No. 11 | |
2 | Write a YACC program to find the validity of a given expression (for operators + - * and /). | Lab Exercise No. 9 | |
3 | A Program in YACC which recognizes a valid variable which starts with letter followed by a digit. The letter should be in lowercase only.. | Lab Exercise No. 10 | |
4 | Program in YACC to recognize the strings “ab”, “aabb”, ”aaabbb”,… of the language (𝑎𝑛 𝑏𝑛 ,n>=1). | Lab Exercise No. 12 | |
5 | Program in YACC to recognize the language (𝑎𝑛 𝑏 , n>=10). (Output to say input is valid or not). | Lab Exercise No. 13 |