Core Course · কোড টাইপ করা থেকে চলা পর্যন্ত পুরো যাত্রা

Concepts of Programming Languages & Compiler DesignParadigms, grammars, lexing, parsing, type systems & code generation

আপনি যখন কোনো প্রোগ্রামিং ল্যাঙ্গুয়েজে কোড লেখেন, সেই টেক্সট ফাইল কীভাবে চলমান প্রোগ্রামে পরিণত হয় — এবং কেন Python, C, Rust, Haskell একেকটা ভাষা একেক রকম "অনুভূত" হয়? এই কোর্স প্রোগ্রামিং প্যারাডাইম (ইম্পারেটিভ, OOP, ফাংশনাল, লজিক) থেকে শুরু করে ফরমাল গ্রামার, লেক্সিক্যাল অ্যানালাইসিস (রেগুলার এক্সপ্রেশন, ফাইনাইট অটোমাটা), পার্সিং (রিকার্সিভ ডিসেন্ট, LL, LR), সিমান্টিক অ্যানালাইসিস (সিম্বল টেবিল, স্কোপ), টাইপ সিস্টেম (টাইপ ইনফারেন্স, পলিমরফিজম), নেম বাইন্ডিং, সাবপ্রোগ্রাম ও প্যারামিটার পাসিং, কোড জেনারেশন ও অপ্টিমাইজেশন, এবং রানটাইম মেমরি ম্যানেজমেন্ট পর্যন্ত কভার করে — Data Structures & Algorithmsপার্সার নিজেই stack/tree/graph দিয়ে বানানো হয় — এই কোর্স সরাসরি সেই ডেটা স্ট্রাকচারগুলো বাস্তব প্রয়োগে ব্যবহার করে ও Computer Architectureকম্পাইলারের ব্যাক-এন্ড ঠিক এই কোর্সে কভার করা CPU আর্কিটেকচারকেই টার্গেট করে কোড জেনারেট করে কোর্সের সেতুবন্ধন।

৫৮টি পাঠ ~৯ সপ্তাহে শেষ শুরু থেকে উচ্চ Python কোডসহ ফ্রি
পাঠ ০১ থেকে শুরু করুন

এই ট্র্যাকে যা শিখবেন What you'll learn

প্রোগ্রামিং প্যারাডাইম — ইম্পারেটিভ, অবজেক্ট-ওরিয়েন্টেড, ফাংশনাল ও লজিক প্রোগ্রামিং
ফরমাল গ্রামার — BNF/EBNF, কনটেক্সট-ফ্রি গ্রামার, চমস্কি হায়ারার্কি
লেক্সিক্যাল অ্যানালাইসিস — রেগুলার এক্সপ্রেশন, NFA/DFA, DFA মিনিমাইজেশন, লেক্সার নির্মাণ
পার্সিং — রিকার্সিভ ডিসেন্ট, LL(1), LR/SLR/LALR, এরর রিকভারি
সিমান্টিক অ্যানালাইসিস — সিম্বল টেবিল, স্কোপ রেজোলিউশন, টাইপ চেকিং
টাইপ সিস্টেম — স্ট্যাটিক/ডায়নামিক টাইপিং, টাইপ ইনফারেন্স, পলিমরফিজম, টাইপ সাউন্ডনেস
নেম, বাইন্ডিং, স্কোপ ও ক্লোজার — লেক্সিক্যাল বনাম ডায়নামিক স্কোপিং
কন্ট্রোল ফ্লো, এক্সেপশন হ্যান্ডলিং ও ডেটা টাইপ অ্যাবস্ট্রাকশন
সাবপ্রোগ্রাম, অ্যাক্টিভেশন রেকর্ড, প্যারামিটার পাসিং ও রিকার্শন
ইন্টারমিডিয়েট রিপ্রেজেন্টেশন, কোড জেনারেশন, অপ্টিমাইজেশন ও গার্বেজ কালেকশন
বাস্তব ভাষা কেস স্টাডি — Python ও Rust-এর ডিজাইন সিদ্ধান্ত
একটি চূড়ান্ত সম্পূর্ণ মিনি ইন্টারপ্রেটার প্রকল্প — লেক্সার থেকে ইভালুয়েটর পর্যন্ত

৫৮টি পাঠ Lesson list

১৩টি মডিউলে ভাগ — PL ফাউন্ডেশন, প্রোগ্রামিং প্যারাডাইম, সিনট্যাক্স ও গ্রামার, লেক্সিক্যাল অ্যানালাইসিস, পার্সিং, সিমান্টিক অ্যানালাইসিস, টাইপ সিস্টেম, নেম/বাইন্ডিং/স্কোপ, কন্ট্রোল ফ্লো, ডেটা টাইপ, সাবপ্রোগ্রাম, কোড জেনারেশন ও অপ্টিমাইজেশন, এবং কেস স্টাডি ও চূড়ান্ত প্রকল্প।

M1প্রোগ্রামিং ল্যাঙ্গুয়েজ ফাউন্ডেশনPL Foundations
L01
প্রোগ্রামিং ল্যাঙ্গুয়েজ ও কম্পাইলার ডিজাইন কী ও কেন গুরুত্বপূর্ণ
What is a programming language & compiler design, and why it matters
৯মি
পড়ুন
L02
সিনট্যাক্স বনাম সিমান্টিক্স
Syntax vs semantics
৭মি
পড়ুন
L03
ট্রান্সলেটর — কম্পাইলার বনাম ইন্টারপ্রেটার বনাম হাইব্রিড (JIT)
Translators — compiler vs interpreter vs hybrid (JIT)
৮মি
পড়ুন
L04
ল্যাঙ্গুয়েজ ডিজাইন গোল ও ট্রেড-অফ
Language design goals & trade-offs
৮মি
পড়ুন
L05
কম্পাইলার ফেজ ওভারভিউ
Compiler phases overview
৯মি
পড়ুন
M2প্রোগ্রামিং প্যারাডাইমProgramming Paradigms
L06
ইম্পারেটিভ প্রোগ্রামিং প্যারাডাইম
Imperative programming paradigm
৮মি
পড়ুন
L07
অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং প্যারাডাইম
Object-oriented programming paradigm
৮মি
পড়ুন
L08
ফাংশনাল প্রোগ্রামিং প্যারাডাইম
Functional programming paradigm
৯মি
পড়ুন
L09
লজিক ও ডিক্লারেটিভ প্রোগ্রামিং প্যারাডাইম
Logic & declarative programming paradigm
৮মি
পড়ুন
L10
মাল্টি-প্যারাডাইম ল্যাঙ্গুয়েজ ও প্যারাডাইম বেছে নেওয়া
Multi-paradigm languages & choosing a paradigm
৭মি
পড়ুন
M3সিনট্যাক্স ও গ্রামারSyntax & Grammars
L11
ফরমাল ল্যাঙ্গুয়েজ ও গ্রামার পরিচিতি
Formal languages & grammars
৮মি
পড়ুন
L12
BNF ও EBNF নোটেশন
BNF & EBNF notation
৮মি
পড়ুন
L13
কনটেক্সট-ফ্রি গ্রামার ও ডেরিভেশন
Context-free grammars & derivations
৯মি
পড়ুন
L14
পার্স ট্রি ও অ্যাম্বিগুইটি
Parse trees & ambiguity
৮মি
পড়ুন
L15
চমস্কি হায়ারার্কি
Chomsky hierarchy
৭মি
পড়ুন
M4লেক্সিক্যাল অ্যানালাইসিসLexical Analysis
L16
টোকেন, লেক্সিম ও প্যাটার্ন
Tokens, lexemes & patterns
৭মি
পড়ুন
L17
লেক্সিক্যাল স্পেসিফিকেশনের জন্য রেগুলার এক্সপ্রেশন
Regular expressions for lexical specification
৮মি
পড়ুন
L18
ফাইনাইট অটোমাটা — NFA থেকে DFA
Finite automata — NFA to DFA
৯মি
পড়ুন
L19
DFA মিনিমাইজেশন
DFA minimization
৮মি
পড়ুন
L20
একটি লেক্সার বানানো
Building a lexer
৯মি
পড়ুন
M5পার্সিংParsing
L21
পার্সিং ওভারভিউ — টপ-ডাউন বনাম বটম-আপ
Parsing overview — top-down vs bottom-up
৭মি
পড়ুন
L22
রিকার্সিভ ডিসেন্ট পার্সিং
Recursive descent parsing
৯মি
পড়ুন
L23
LL(1) পার্সিং — FIRST ও FOLLOW সেট
LL(1) parsing — FIRST & FOLLOW sets
৯মি
পড়ুন
L24
বটম-আপ পার্সিং — শিফট-রিডিউস
Bottom-up parsing — shift-reduce
৮মি
পড়ুন
L25
LR পার্সিং — LR(0) ও SLR আইটেম
LR parsing — LR(0) & SLR items
৯মি
পড়ুন
L26
LALR পার্সিং ও পার্সার জেনারেটর
LALR parsing & parser generators
৮মি
পড়ুন
L27
সিনট্যাক্স এরর রিকভারি
Syntax error recovery
৭মি
পড়ুন
M6সিমান্টিক অ্যানালাইসিসSemantic Analysis
L28
সিম্বল টেবিল
Symbol tables
৮মি
পড়ুন
L29
কম্পাইলারে স্কোপ রেজোলিউশন
Scope resolution in compilers
৮মি
পড়ুন
L30
টাইপ চেকিং বেসিকস
Type checking basics
৮মি
পড়ুন
L31
সিনট্যাক্স-ডাইরেক্টেড ট্রান্সলেশন
Syntax-directed translation
৯মি
পড়ুন
M7টাইপ সিস্টেমType Systems
L32
টাইপ সিস্টেম — স্ট্যাটিক বনাম ডায়নামিক টাইপিং
Type systems — static vs dynamic typing
৮মি
পড়ুন
L33
টাইপ ইকুইভ্যালেন্স ও চেকিং রুল
Type equivalence & checking rules
৮মি
পড়ুন
L34
টাইপ ইনফারেন্স
Type inference
৯মি
পড়ুন
L35
পলিমরফিজম — প্যারামেট্রিক, অ্যাড-হক ও সাবটাইপ
Polymorphism — parametric, ad-hoc & subtype
৮মি
পড়ুন
L36
টাইপ সেফটি ও সাউন্ডনেস
Type safety & soundness
৭মি
পড়ুন
M8নেম, বাইন্ডিং ও স্কোপNames, Bindings & Scope
L37
নেম, ভ্যারিয়েবল ও বাইন্ডিং
Names, variables & binding
৮মি
পড়ুন
L38
স্কোপ — স্ট্যাটিক (লেক্সিক্যাল) বনাম ডায়নামিক স্কোপিং
Scope — static (lexical) vs dynamic scoping
৮মি
পড়ুন
L39
লাইফটাইম ও স্টোরেজ অ্যালোকেশন
Lifetime & storage allocation
৮মি
পড়ুন
L40
ক্লোজার ও লেক্সিক্যাল এনভায়রনমেন্ট
Closures & lexical environments
৯মি
পড়ুন
M9কন্ট্রোল ফ্লোControl Flow
L41
এক্সপ্রেশন ও ইভালুয়েশন অর্ডার
Expressions & evaluation order
৭মি
পড়ুন
L42
কন্ট্রোল স্ট্রাকচার — সিলেকশন ও ইটারেশন
Control structures — selection & iteration
৭মি
পড়ুন
L43
এক্সেপশন হ্যান্ডলিং মেকানিজম
Exception handling mechanisms
৮মি
পড়ুন
L44
কোরুটিন ও কন্টিনিউয়েশন
Coroutines & continuations
৮মি
পড়ুন
M10ডেটা টাইপ ও অ্যাবস্ট্রাকশনData Types & Abstraction
L45
প্রিমিটিভ ও কম্পোজিট ডেটা টাইপ
Primitive & composite data types
৭মি
পড়ুন
L46
অ্যাবস্ট্রাক্ট ডেটা টাইপ ও এনক্যাপসুলেশন
Abstract data types & encapsulation
৮মি
পড়ুন
L47
অ্যারে, রেকর্ড ও পয়েন্টার
Arrays, records & pointers
৮মি
পড়ুন
M11সাবপ্রোগ্রাম ও প্যারামিটার পাসিংSubprograms & Parameter Passing
L48
সাবপ্রোগ্রাম, অ্যাক্টিভেশন রেকর্ড ও কল স্ট্যাক
Subprograms, activation records & the call stack
৯মি
পড়ুন
L49
প্যারামিটার পাসিং মেকানিজম
Parameter passing mechanisms
৮মি
পড়ুন
L50
রিকার্শন ইমপ্লিমেন্টেশন
Recursion implementation
৮মি
পড়ুন
M12কোড জেনারেশন ও অপ্টিমাইজেশনCode Generation & Optimization
L51
ইন্টারমিডিয়েট রিপ্রেজেন্টেশন ও থ্রি-অ্যাড্রেস কোড
Intermediate representations & three-address code
৯মি
পড়ুন
L52
কোড জেনারেশন বেসিকস
Code generation basics
৮মি
পড়ুন
L53
কোড অপ্টিমাইজেশন টেকনিক
Code optimization techniques
৯মি
পড়ুন
L54
রানটাইম এনভায়রনমেন্ট ও গার্বেজ কালেকশন
Runtime environments & garbage collection
৯মি
পড়ুন
M13কেস স্টাডি ও চূড়ান্ত প্রকল্পCase Studies & Capstone
L55
কেস স্টাডি: Python-এর ডিজাইন সিদ্ধান্ত
Case study: Python's design choices
১০মি
পড়ুন
L56
কেস স্টাডি: Rust-এর ওনারশিপ ও বরো চেকার
Case study: Rust's ownership & borrow checker
১০মি
পড়ুন
L57
কেস স্টাডি: বাস্তব ভাষাগুলোতে প্যারাডাইম তুলনা
Case study: comparing paradigms across real languages
৯মি
পড়ুন
L58
চূড়ান্ত প্রকল্প — একটি মিনি ইন্টারপ্রেটার বানানো
Capstone — building a mini interpreter
১৮মি
পড়ুন