کتاب Practical Computer Architecture with Python and ARM: An introductory guide for enthusiasts and students to learn how computers work and program their own (معماری کاربردی کامپیوتر با پایتون و ARM: راهنمای مقدماتی برای علاقهمندان و دانشآموزان برای یادگیری نحوه کار کامپیوترها و برنامهریزی خود)
در ادامه مقدمهای از کتاب Practical Computer Architecture with Python and ARM را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب Practical Computer Architecture with Python and ARM:
یکی از موضوعات اساسی علم کامپیوتر، معماری کامپیوتر است. این موضوع زمانی سخت افزار کامپیوتر نامیده میشد و به خود کامپیوتر فیزیکی مربوط میشود. یعنی واحد پردازش مرکزی (CPU)، حافظه، اتوبوسها و تجهیزات جانبی. سختافزار رایانه با نرمافزار رایانهای که برای برنامهها، برنامهها و سیستمعاملهایی که رایانهها اجرا میکنند کاربرد دارد، در تضاد است.
بیشتر کاربران به سختی و معماری کامپیوتر بیشتر از نگرانی رانندگان در مورد عملکرد کاربراتور وسایل نقلیه خود اهمیت نمیدهند. با این حال، دانش معماری کامپیوتر از بسیاری جهات مفید است، از میزان کارآمدی رایانه خود تا به حداکثر رساندن امنیت آن. یک تشبیه خوب با خلبانان است. آنها یاد میگیرند که چگونه با هواپیما پرواز کنند، و آگاهی از نحوه عملکرد موتورهای آن برای مدیریت شرایط غیرعادی، افزایش عمر موتور و به حداقل رساندن مصرف سوخت کاملاً حیاتی تلقی میشود.
معماری کامپیوتر موضوع بزرگی است و به طور کلی به سه حوزه مرتبط تقسیم میشود: معماری مجموعه دستورالعمل (ISA)، سازمان کامپیوتر و سختافزار کامپیوتر. ISA نمایانگر دیدگاه برنامه نویس از کامپیوتر است.
یعنی یک مدل انتزاعی از کاری است که یک کامپیوتر انجام میدهد (به جای اینکه چگونه آن را انجام میدهد). به عنوان مثال، برنامه نویس به مجموعه دستورات یک کامپیوتر علاقه مند است، که شامل عملیاتی مانند افزودن P,A,B است که A را به B اضافه میکند و مجموع را در P قرار میدهد. این کتاب با نشان دادن اینکه چگونه میتوانید یک برنامه بنویسید، معماری کامپیوتر را توضیح میدهد. که یک کامپیوتر را شبیهسازی میکند.
بخشی از علوم کامپیوتر که به نحوه اجرای اقدامات معماری خود توسط کامپیوتر میپردازد، سازمان کامپیوتری نامیده میشود و تا حد زیادی خارج از حوصله این متن است. سازمان کامپیوتری به گیتها و مدارهای کامپیوتر مربوط میشود.
یک نویسنده نمیتواند همه جنبههای یک کامپیوتر را در یک کتاب رعایت کند. در اینجا، من علاقه مند به پرداختن به یک موضوع هستم: ISA. من میخواهم مجموعه دستورالعملهای کامپیوتر را معرفی کنم و توضیح دهم که چه کار میکند.
من همچنین انواع مختلف مجموعه دستورات را مورد بحث قرار خواهم داد. به عنوان مثال، پردازنده ARM موجود در اکثر تلفنهای همراه با پردازندههای Intel و AMD در قلب رایانههای شخصی و لپتاپها بسیار متفاوت است. در بخش دوم کتاب Practical Computer Architecture with Python and ARM، ما بر روی یک کامپیوتر خاص تمرکز میکنیم و به معماری دنیای واقعی، یعنی پردازنده ARM نگاه میکنیم.
کتاب Practical Computer Architecture with Python and ARM متفاوت است. کتابهایی در زمینه معماری کامپیوتر وجود دارد. کتابهایی در مورد پایتون وجود دارد. کتابهایی در رایانه رزبری پای وجود دارد. در اینجا، ما هر سه این موضوعات را با هم ترکیب میکنیم. با این حال، من این کار را به روشی سطحی انجام نمیدهم و خواننده را با دانش سطحی و رضایت بخش از هر موضوع مواجه نمیکنم.
قصد من معرفی معماری کامپیوتر و مجموعه دستورالعمل آن است. یعنی من قصد دارم نحوه عملکرد یک کامپیوتر را در سطح دستورالعملهای بومی خود (به نام زبان اسمبلی) توضیح دهم. من توضیح میدهم که یک دستورالعمل چه کاری انجام میدهد و چگونه خوانده میشود، تفسیر میشود (یعنی رمزگشایی میشود)، و سپس اجرا میشود (اجرا میشود). من همچنین در مورد نوع عملیاتی که رایانهها اجرا میکنند صحبت خواهم کرد.
بنابراین، چگونه پایتون در این طرح قرار میگیرد؟ پایتون یک زبان برنامهنویسی سطح بالا و محبوب است که به صورت رایگان برای استفاده در رایانه شخصی، Apple Mac و Raspberry Pi در دسترس است. علاوه بر این، Python احتمالاً سادهترین زبان کامپیوتری برای یادگیری است و بسیار قدرتمند است.
مردم با انجام دادن یاد میگیرند. من تصمیم گرفتهام پایتون کافی را برای خواننده بگنجانم تا بتواند یک شبیهساز کامپیوتری ساده بسازد که بتواند دستورالعملهای کامپیوتری در سطح ماشین را بخواند و آن را اجرا کند. از آنجا که من نشان خواهم داد که این شبیهساز پایتون چگونه کار میکند، دانشآموزان میتوانند کامپیوترهایی را با مشخصات خود بسازند. آنها میتوانند با مجموعه دستورالعملها، حالتهای آدرس دهی، فرمتهای دستورالعمل و غیره آزمایش کنند.
آنها حتی میتوانند انواع مختلفی از کامپیوترها را با مشخصات خود بسازند، به عنوان مثال، با استفاده از کامپیوتر مجموعه دستورات پیچیده (CISC) یا معماریهای کامپیوتر مجموعه دستورات کاهش یافته (RISC). CISC و RISC دو فلسفه متفاوت از طراحی کامپیوتر را ارائه میدهند.
اساساً، رایانههای RISC دارای دستورالعملهایی با طول ثابت هستند که فقط عملیات ثبت بار و ذخیره حافظه را مجاز میسازند، در حالی که رایانههای CISC میتوانند دستورالعملهایی با طول متغیر داشته باشند و اجازه عملیات مستقیم داده روی حافظه را بدهند. در واقعیت، تمایز بین RISC و CISC پیچیده تر است. نسل اول ریز فرآیندها همگی با فلسفه CISC مطابقت داشتند.
خوانندگان میتوانند رایانه بسازند زیرا میتوانند برنامه ای در پایتون بنویسند که زبان مقصد یک معماری خاص رایانه را اجرا کند و خودشان میتوانند آن زبان مقصد را طراحی کنند.
یکی از محبوبترین معماریهای کامپیوتری، پردازنده ARM است که در برنامههای تلفن همراه و حتی لپتاپهای اپل یافت میشود. این نه تنها از نظر اقتصادی یک خانواده پردازنده غالب است، بلکه به دلیل معماری جالب و نوآورانه و منحنی یادگیری نسبتا ملایم آن در آموزش نیز بسیار محبوب است.
حتی بهتر از آن، این پردازنده ای است که توسط کامپیوتر ارزان قیمت Raspberry Pi استفاده میشود. میتوانید کد ARM را با استفاده از ابزارهای نرمافزاری که به همراه رایانه ارائه میشود، روی Raspberry Pi اجرا کنید. همچنین میتوانید برنامههای پایتون را روی Raspberry Pi با نرم افزار رایگان اجرا کنید. در نتیجه، Raspberry Pi یک دستگاه کمهزینه عالی برای دانشآموزان فراهم میکند که به آنها اجازه میدهد موضوعات اصلی سختافزار را بدون سرمایهگذاری بیشتر در سختافزار یا نرمافزار مطالعه کنند.
کتاب Practical Computer Architecture with Python and ARM برای چه کسی است؟
من سالها معماری کامپیوتر را تدریس کرده ام و از شبیه سازها برای آموزش زبان اسمبلی استفاده کرده ام. این رویکرد نشان میدهد که دستورالعملها چه کاری را انجام میدهند، اما نه اینکه چگونه آن را انجام می دهند یا چگونه طراحی، رمزگشایی و اجرا می شوند. تصمیم گرفتم یک شبیه ساز دستورالعمل ساده برای استفاده در کلاس ایجاد کنم. این کتاب از آن پروژه تکامل یافته است.
مخاطبان هدف من را میتوان به چهار گروه اصلی به شرح زیر تقسیم کرد:
دانش آموزانی که در حال گذراندن دوره معماری کامپیوتر هستند و مایلند تجربه خود را از معماری کامپیوتر با آزمایش CPU های خود با استفاده از شبیه سازی افزایش دهند. این رویکرد عمق دانش آنها را از معماری کامپیوتر افزایش میدهد و درک آنها را از مبادلاتی که طراح کامپیوتر با آن مواجه است افزایش میدهد.
متخصص غیر کامپیوتری، فرد عادی و علاقهمندی که دوست دارد بداند کامپیوترها چگونه کار میکنند. با استفاده از Python به عنوان زبان طراحی و ارائه یک دوره مقدماتی در مورد Python، سعی کردم این کتاب را برای کسانی که تجربه کمی در برنامهنویسی دارند یا هیچ تجربه ای ندارند، در دسترس قرار دهم.
کاربر Raspberry Pi. رزبری پای تاثیر زیادی بر آموزش علوم کامپیوتر داشته است. کتاب Practical Computer Architecture with Python and ARM معرفی مختصری از Raspberry Pi ارائه میکند و نشان میدهد که چگونه میتوان برنامههای زبان اسمبلی را به زبان مادری ARM نوشت. علاوه بر این، Raspberry Pi همچنین یک محیط (Python و ابزارهای آن) را فراهم میکند که به خواننده اجازه میدهد رایانهها را درک و شبیه سازی کند.
خواننده ای که میخواهد پایتون را یاد بگیرد. اگرچه این یک دوره رسمی در پایتون نیست، اما مقدمه ای هدفمند برای پایتون ارائه میدهد. یعنی پایتون را در یک مثال واقعی اعمال میکند. این رویکرد از گستردگی یک دوره متعارف اجتناب میکند و خواننده را قادر میسازد تا یک کاربرد عملی با منحنی یادگیری نسبتاً کم عمق بسازد.
من تصور نمیکنم که یک خواننده مبتدی مطلقاً هیچ دانشی از رایانه ندارد. کتاب Practical Computer Architecture with Python and ARM دانش بسیار ابتدایی حساب باینری و مبانی اعداد و مفاهیم اساسی متغیرهای بولی را در نظر گرفته است.
آنچه کتاب Practical Computer Architecture with Python and ARM پوشش میدهد:
فصل 1، از ماشینهای حالت محدود تا کامپیوترها، مفهوم کامپیوترهای دیجیتال را از طریق ماشین حالت محدود که برای مدلسازی سیستمهای کنترل ساده استفاده میشود، معرفی میکند. از آنجا به معرفی مفهوم الگوریتمها و برنامهها میپردازیم. زمانی که بدانیم میخواهیم یک رایانه چه کاری انجام دهد، میتوانیم به آنچه برای پیادهسازی رایانه نیاز داریم فکر کنیم.
فصل 2 کتاب Practical Computer Architecture with Python and ARM، مقدمه پرسرعت پایتون، زمینه اولیه پایتون را فراهم میکند که برای برداشتن اولین گامها در مسیر پیاده سازی رایانه با استفاده از پایتون لازم است.
فصل 3 کتاب Practical Computer Architecture with Python and ARM، جریان داده در یک کامپیوتر، نشان میدهد که چگونه اطلاعات در حین اجرای یک برنامه در اطراف یک کامپیوتر جریان می یابد. این جریان داده است که ما باید هنگام شبیه سازی یک برنامه در نرم افزار پیاده سازی کنیم.
فصل 4 کتاب Practical Computer Architecture with Python and ARM، ساخت یک مترجم – مراحل اول، سفر به یک شبیه ساز را آغاز میکند. اکنون که با مفهوم کامپیوتر و کمی پایتون آشنا شدیم، میتوانیم جلوتر برویم و ایدههای اساسی پشت یک شبیهساز کامپیوتری را شرح دهیم. در این فصل به ماهیت دستورالعملهای کامپیوتری نیز میپردازیم.
فصل 5 کتاب Practical Computer Architecture with Python and ARM، کمی بیشتر پایتون، دانش ما را در مورد پایتون گسترش میدهد و ما را با موضوعات حیاتی مانند دیکشنریهای پایتون آشنا میکند، که ابزارهایی را ارائه میدهند که طراحی یک شبیهساز رایانه را تا حد زیادی ساده میکنند.
فصل 6 کتاب Practical Computer Architecture with Python and ARM، طراحی اسمبلر و شبیه ساز TC1، قلب کتاب Practical Computer Architecture with Python and ARM است. در اینجا، اجزای یک شبیه ساز را مورد بحث قرار میدهیم و سپس برنامه ای را ارائه میدهیم که میتواند یک کامپیوتر آموزشی فرضی، TC1 را شبیه سازی کند.
فصل 7 کتاب Practical Computer Architecture with Python and ARM، گسترش TC1، امکانات بیشتری را به شبیهساز اضافه میکند، مانند بررسی دادهها و ایجاد دستورالعملهای جدید.
فصل 8 کتاب Practical Computer Architecture with Python and ARM، شبیه سازها برای معماریهای دیگر، به انواع مختلف معماری کامپیوتر می پردازد و شبیه سازهای جایگزین را شرح میدهد.
فصل 9، Raspberry Pi – An Introduction، تغییر مسیر میدهد. در اینجا، ما به Raspberry Pi محبوب و پردازنده ARM در هسته آن نگاه میکنیم. به طور خاص، ما یاد میگیریم که چگونه یک برنامه را به زبان اسمبلی ARM وارد کنیم و آن را در حالت اشکال زدایی اجرا کنیم.
فصل 10 کتاب Practical Computer Architecture with Python and ARM، نگاهی دقیق تر به ARM، مجموعه دستورالعملهای ARM را با جزئیات بیشتری بررسی میکند و پایه ای برای نوشتن برنامهها به زبان اسمبلی فراهم میکند.
فصل 11 کتاب Practical Computer Architecture with Python and ARM، حالتهای آدرس دهی ARM، به حالتهای آدرسدهی ARM با جزئیات بیشتری نگاه می کند و برخی از ویژگیهای خاص آن را توضیح میدهد.
فصل 12، Subroutines and the Stack، واقعاً گسترش فصل قبل است، زیرا ما به روشی نگاه میکنیم که در آن ARM از حالتهای آدرس دهی خود برای اجرای عملیات پشته استفاده میکند، که در برنامهنویسی به زبان اسمبلی بسیار مهم هستند.
سرفصلهای کتاب Practical Computer Architecture with Python and ARM:
- Practical Computer Architecture with Python and ARM
- Contributors
- About the author
- About the reviewers
- Preface
- Part 1: Using Python to Simulate a Computer
- Chapter 1: From Finite State Machines to Computers
- Chapter 2: High-Speed Introduction to Python
- Chapter 3: Data Flow in a Computer
- Chapter 4: Crafting an Interpreter – First Steps
- Chapter 5: A Little More Python
- Chapter 6: TC1 Assembler and Simulator Design
- Chapter 7: Extending the TC1
- Chapter 8: Simulators for Other Architectures
- Part 2: Using Raspberry Pi to Study a Real Computer Architecture
- Chapter 9: Raspberry Pi: An Introduction
- Chapter 10: A Closer Look at the ARM
- Chapter 11: ARM Addressing Modes
- Chapter 12: Subroutines and the Stack
- Appendices – Summary of Key Concepts
- Index
- Other Books You May Enjoy
جهت دانلود کتاب Practical Computer Architecture with Python and ARM میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.