Introduction
Introduction
LANGUAGES
CS F301 – Introduction
PROF. KUNAL KORGAONKAR
About Me
• PhD – UC San Diego, US
• MS – IIT Madras, India
• Postdoctoral – Technion, Israel
• Interest – Computer Systems Design and
Implementation (and many other topics)
• Lead and PI of “Confluence Lab” – Building systems at
the confluence of science, technology and society
• Asst. Prof. at the CSIS Dept. at BITS Pilani, Goa Campus
Programming Languages – PL Poll
• C – Few
• C++ - Significant Majority
• Java – Considerable
• Javascript – Few more
• Python – Consid+erable
• Rust - Few
• Any Other – Not many
GOALS of the Class
• Goal 1: Shifting from being a “Consumer of
Technology” to a “Creator of Technology”
• Goal 2: Challenge of Writing Code - Specification and
Synthesis as an Answer
• Goal 3: Rise of “Domain Specific Languages” and
through working on specific domains
• Goal 4: Introduction to different “Programming
Languages Paradigm” (a good starting point)
• GOAL 5: Complex and scalable full-system or complete
software & systems design and implementation
From Merely Consumer to
Creator of Technology as well
• In Compiler Construction Lab
(CS F363 - last year)
• Design your own game programming
language for the Tetris Game
• Compile your program written in your
game programming language to final
executable form
• For instance first step could be: Game-
Tetris-Program-X ➔ Python/C++ as
Language for Intermediate Code Tetris
• And second step is: Python/C++ as
Intermediate Code ➔ Binary
Executable for Tetris (trivial)
From Merely Consumer to
Creator of Technology as well
Game
Programming
Lang. Design and
Compiler
The Challenge of Writing Code
• The Specification Challenge
• Example in robotics
Specification
Soft Engg. “Creation”
Complex,
Domain (G2) of
Programming Scalable
Specific Complete
Paradigms Software &
Languages Synthesis Software
(G4) Systems*
Systems (G3) Soft Engg. & Systems
(G5)
(G2) (G1)