Go Behind the Curtain of Modern Systems with C23
Paul J. Lucas

#C
#C23
⚙️ C رو دستکم نگیر! زبان کلاسیکی که هنوز استخونبندی دنیای نرمافزاره.
سیستمعاملها، پایگاهدادهها، کتابخانهها، سیستمهای توکار، و حتی قلب بسیاری از زبانهای مدرن، هنوز با C زندهان 🧠
کتاب Mastering C23 Programming (اسم رسمیاش در نسخهی چاپی دقیقاً همینه) نه فقط آموزش زبان C23ه، بلکه پایهای قوی برای درک عمیق مفاهیم برنامهنویسی در هر زبانی برات میسازه.
کتاب با یه تور کلی از C شروع میشه؛
بعد بهصورت سیستماتیک کل ویژگیهای C23 رو پوشش میده، از رفتارهای Undefined گرفته تا assertions، متغیرهای atomic، برنامهنویسی بدون قفل (lock‑free)، دیباگ پیشرفته، و مریخیترین چیزها مثل ماکروهای هوشمند با _Generic 😎
آخرش هم مثالهایی واقعاً جذاب میاره که نشون میدن چطور مفاهیم مدرن زبونهایی مثل ++C، Java یا Go رو میشه توی خود C پیاده کرد.
💬 توی متن کلی یادداشتهای درونخطی داره — توضیحات تاریخی، Best Practiceها، چرایی تصمیمات طراحی، و جزئیاتی که معمولاً در زبانهای جدید محو شدن. هر مثال با اضافه شدن قابلیتهای جدید بهتدریج رشد میکنه، تا کل مسیر توسعهی زبان برات ملموس بشه.
C هنوز ستون فقرات نرمافزارهای سیستمیه — از Kernel OS گرفته تا Compilerها و Embedded Firmware.
استاندارد جدید C23 امکاناتی برای همروندی امنتر، تایپ پیشرفته، assertهای بهبودیافته، و کنترل بهتر حافظه معرفی کرده که هم عملکرد رو بالا میبره، هم کدنویسی مدرنتر رو ممکن میکنه.
برای برنامهنویسهای حرفهای، مدرّسان علومکامپیوتر، دانشجوها یا علاقهمندان جدی که مفاهیم پایهای مثل متغیر، تابع، حلقه، آرایه و کلاس رو بلدن و با یادداشت Big O آشنا هستن.
بخش I – یادگیری C
بخش II – موضوعات منتخب
بخش III – مثالهای توسعهیافته
پاول جی. لوکاس (Paul J. Lucas)
برنامهنویسی رو از دوران دبیرستان با Commodore PET شروع کرد. اولین کامپیوتر شخصیاش یه Apple II Plus بود که باش با BASIC، Pascal، Fortran، و اسمبلی 6502 کد میزد. بعد از ورود به دانشگاه خودش C رو یاد گرفت و از اون موقع تا حالا (با استراحتهایی کوتاه 😅) هنوز عاشق C و ++C مونده.
کارش رو در AT&T Bell Labs شروع کرد — در حوزه تلفنی، تصویرسازی لاگ فایلها و تست اولین کامپایلر ++C بهنام cfront. نویسندهی کتاب معروف The C++ Programmer’s Handbookه و سابقه کار توی NASA Ames Research Center، چندین استارتآپ و در نهایت Splunk رو داره.
دارنده چندین پتنت در زمینهی کتابخانههای تصویرسازی داده، تحلیل بصری لاگها، سیستمهای نوعزبان، جستوجوی زمانبندیشده و کشمحور، و نویسنده پروژههای متنبازی مثل CHSM (کامپایلر و سیستم اجرای اتوماتاهای متناهی) که در شرکتهای مخابراتی و حتی مؤسسهی CERN استفاده میشه. نگهدارندهی ابزار معروف cdecl هم هست — همون مفسر که اعلانهای پیچیدهی C و ++C رو به انگلیسی ساده ترجمه میکنه 😄
Don’t count C out. The classic programming language remains the backbone of many modern software systems including operating systems, relational databases, libraries, embedded systems, and even the core components of other programming languages.
This book teaches C23 while also building a foundation that strengthens your programming skills regardless of what language you normally program in. Starting with a tour of C, it highlights C’s core concepts using example programs to give you the flavor of C. Next, it covers the entire C23 language including topics not often covered elsewhere such as undefined behavior, assertions, atomic variables, lock-free programming, debugging, advanced use of the preprocessor using _Generic, and more. Finally, it gives extended examples of how features common in modern programming languages might be implemented—including lists, maps, dynamic dispatch, and exceptions.
This book includes many in-line notes containing commentary, explanations for why something is the way it is, historical context, best practices, and details often glossed over in modern languages. Additionally, it gives examples that evolve with the introduction of new language features.
What You Will Learn:
Who This Book is for:
Professional programmers, computer science instructors, students or experienced hobbyists who understand programming language concepts (variables, statements, loops, functions, arrays, classes, objects, etc.) and have basic familiarity with algorithm characterization given in “big O” notation.
Table of Contents
Part I Learning C
Chapter 1 A Tour of C
Chapter 2 Comments, Names, and Types
Chapter 3 Operators
Chapter 4 Declarations
Chapter 5 Statements
Chapter 6 Arrays and Pointers
Chapter 7 Enumerations
Chapter 8 Preprocessor
Chapter 9 Functions
Chapter 10 Structures
Chapter 11 Unions
Chapter 12 Input, Output, and Files
Chapter 13 Program Organization
Chapter 14 Multithreading
Part II Selected Topics
Chapter 15 Undefined Behavior
Chapter 16 Assertions
Chapter 17 _Atomic
Chapter 18 Debugging
Chapter 19_Generic
Chapter 20 setjmp and longjmp
Chapter 21 restrict
Chapter 22 volatile
Part Ill Extended Examples
Chapter 23 Strings
Chapter 24 Lists
Chapter 25 Maps
Chapter 26 Dynamic Dispatch
Chapter 27 Exceptions in C
Paul J. Lucas started programming on Commodore PETs at his high school. Courtesy of his parents, the first computer he owned was an Apple ][plus that he programmed in BASIC, Pascal, Fortran, and 6502 Assembly. At some point, he upgraded to a Macintosh. During his undergraduate studies, he taught himself C. He’s been programming in C (on and off) ever since. He’s also programmed in Bash, Go, Java, Perl, and Python. Of all those, C and C++ are still his favorites.
He started his career at AT&T Bell Labs in telephony, log file visualization, testing cfront (the original C++ compiler), and wrote The C++ Programmer’s Handbook. He’s also worked at NASA Ames Research Center, various start-ups, and lastly at Splunk. He holds patents on data visualization class libraries, visual log file analysis, programming language type systems, skewing of scheduled search queries, and cache-aware searching. He developed open-source projects including CHSM, a finite state automata compiler and run-time system, used by both telecommunications companies and CERN for managing complex reactive systems; and maintains cdecl, the C and C++ gibberish-to-English translator.









