ماتریوشکا سی. سیستم زبان برنامه لایه ای

بیایید سعی کنیم شیمی را بدون جدول تناوبی مندلیف (1869) تصور کنیم. چند عنصر باید در نظر گرفته می شد، بدون ترتیب خاصی... (سپس - 60.)

برای این کار کافیست به یک یا چند زبان برنامه نویسی به طور همزمان فکر کنید. همان احساسات، همان هرج و مرج خلاقانه.

و اکنون می‌توانیم احساسات شیمی‌دانان قرن نوزدهم را دوباره زنده کنیم، زمانی که همه دانش‌شان و اندکی بیشتر در یک جدول تناوبی به آنها ارائه شد.

ماتریوشکا سی. سیستم زبان برنامه لایه ای


کتاب «ماتریوشکا سی. سیستم لایه ای زبان برنامه" تمام واحدهای زبان C را در یک نگاه ارائه می دهد. این به شما امکان می دهد آنها را سازماندهی کنید، اطلاعات قدیمی را تصحیح کنید و حتی مفهوم برنامه را روشن کنید.

امروزه اطلاعات برنامه نویسی حتی بیش از 150 سال پیش نیاز به سیستم سازی دارد.

اولین ضرورت آموزش است. مندلیف زمانی شروع به ایجاد سیستم خود کرد که با این سوال مواجه شد که با کدام عنصر شروع به سخنرانی کند: O, H, N, He, Au... در عین حال برای او راحت تر بود - او به بهترین ها شیمی یاد می داد - دانش آموزان دانشگاه سن پترزبورگ. و برنامه نویسی در حال حاضر در مدرسه تدریس می شود و به زودی در مهدکودک آغاز خواهد شد.

نیاز دوم رویکرد علمی است. با کمک جدول تناوبی، عناصر جدیدی کشف شد و اطلاعات مربوط به عناصر قدیمی تصحیح شد. او به ایجاد مدل اتم کمک کرد (1911). و غیره.

نیاز سوم، شفاف سازی مفهوم برنامه است.

برنامه نویسی مدرن یک پای خود را در دهه 50 قرن بیستم گیر کرده است. در آن زمان، برنامه ها ساده بودند، اما ماشین ها و زبان های ماشین پیچیده بودند، بنابراین همه چیز حول ماشین ها و زبان ها می چرخید.

اکنون همه چیز برعکس است: برنامه ها پیچیده و اولیه هستند، زبان ها ساده و فرعی هستند. به این می گویند رویکرد کاربردی که به نظر می رسد همه با آن آشنایی دارند. اما دانشجویان و توسعه دهندگان همچنان متقاعد شده اند که همه چیز یکسان است.

که ما را به اولین سخنرانی پریواتوزنت مندلیف بازمی گرداند. به دانشجویان سال اول چه بگویم؟ حقیقت کجاست؟ مساله این است.

کتاب ماتریوشکا C پاسخ خود را به این سوال ارائه می دهد. سیستم لایه ای زبان برنامه". علاوه بر این، نه تنها به دانش آموزان، بلکه برنامه نویسان آموزش دیده نیز خطاب می شود، زیرا این آنها، یعنی ما هستیم که باید به دنبال حقیقت باشیم و جهان بینی را تغییر دهیم.

آنچه در ادامه می آید خلاصه ای از کتاب است.

1 مقدمه

در سال 1969 زبان C ایجاد شد که به زبان اصلی برنامه نویسی تبدیل شد و 50 سال است که این زبان باقی مانده است. چرا اینطور است؟ اول از همه، چون C است کاربردی زبانی که برنامه را داده است انسانی در عوض مشاهده کنید دستگاه. این دستاورد توسط زبان‌هایی از خانواده C: C++، JavaScript، PHP، Java، C# و دیگران تضمین شده است. دوم اینکه زبان کوتاه و زیبایی است.

با این حال، خود زبان C معمولاً با اسمبلر ماشین مخلوط می شود و در نتیجه درک آن را پیچیده و مخدوش می کند. افراط دیگر تحمیل «فلسفه» معینی بر زبان است: رویه ای، ابژه، کارکردی، تالیفی، تفسیری، تایپی و غیره. این باعث افزایش احساسات می شود، اما به توصیف بهتر زبان کمک نمی کند.

حقیقت در وسط است و برای زبان C دقیقاً در وسط بین ادراک فلسفی و ماشینی قرار دارد.

زبان C مستقل نیست، از زبان نوشتاری معمولی اطاعت می کند و در عین حال خود زبان اسمبلی را کنترل می کند. این موقعیت توصیف می کند مدل گفتار برنامه، که طبق آن برنامه به سه نوع فرعی تقسیم می شود: گفتار، کد، دستور. زبان C مسئول نوع کد دوم است.

با تعیین مکان زبان در برنامه، می توانید اطلاعات مربوط به آن را سازماندهی کنید، که باعث می شود سیستم زبان برنامه لایه ای، نشان دهنده زبان C در روح سیستم تناوبی - در یک صفحه.

این سیستم با در نظر گرفتن ساخته شده است جوامع زبان های کاربردی، ناشی از فرع گفتاری آنها. یک مجموعه از واحدهای Matryoshka C به شما امکان می دهد زبان های مختلف را توصیف و مقایسه کنید و یک سری ماتریوشکا ایجاد کنید: C++، PHP، JavaScript، C#، MySQL، Python و غیره. شایسته و صحیح است که زبان های مختلف با واحدهای زبان اصلی توصیف شوند.

2. فصل 1. مدل گفتار برنامه. C را پاک کنید

فصل اول ارائه می کند مدل گفتار برنامه، منعکس کننده یک رویکرد کاربردی است. به گفته وی، این برنامه دارای سه نوع متوالی آشکار است:

  1. سخنرانی - سخنرانی مستقیم برنامه نویسی که مشکل را حل می کند،
  2. کد شده - رمزگذاری یک راه حل به شکل ریاضی در زبان C (یا هر دیگری)
  3. و دستور - دستورات مستقیم ماشین.

مدل گفتار توضیح می دهد که چرا C یک زبان ساده و قابل درک است. شی در تصویر و تشبیه گفتار انسان ساخته شده است که برای ما آشناست.

اولین نوع برنامه، گفتار مستقیم برنامه نویس است. گفتار با تفکر انسان مطابقت دارد. برنامه نویسان مبتدی برنامه ها را با استفاده از گفتار می نویسند - ابتدا به زبان روسی، سپس گام به گام اقدامات را به زبان کد ترجمه می کنند. و دقیقاً بر روی این مدل است که زبان C ایجاد شده است.

نتیجه گیری برنامه نویس، که در گفتار بیان می شود، به یک شکل عددی کدگذاری شده تبدیل می شود. این تحول را باید نامید انعکاس، از آنجایی که گفتار و رمز ماهیت یکسانی دارند (بازتاب - تولد - جنسیت). اگر نوع گفتار (در سمت چپ) و کد (در سمت راست) برنامه را با هم مقایسه کنیم، کاملاً واضح است.

ماتریوشکا سی. سیستم زبان برنامه لایه ای

جالب است که بازتاب بسیار ساده رخ می دهد - تنها با دو نوع بیان.

با این حال، توصیف مدرن زبان C (از سال 1978) شامل فهرست کافی از نام‌ها برای توصیف زبان به طور کلی یا برای وظیفه بازتاب به طور خاص نیست. از این رو مجبور به خلاقیت و معرفی این اسامی هستیم.

انتخاب کلمات باید دقیق و واضح باشد. این امر مستلزم رویکرد خاصی بود که به طور خلاصه به شرح زیر بیان می شود: استفاده دقیق از زبان مادری. برای انگلیسی ها انگلیسی است، اما ما انگلیسی نیستیم. بنابراین ما از آنچه داریم استفاده می کنیم و سعی می کنیم روسی صحبت کنیم.

بازتاب توسط دو نوع عبارت انجام می شود:

  1. محاسبه (HF) - منعکس کننده تغییر در ویژگی های یک شی است. ویژگی یک شی با یک عدد بیان می شود، سپس یک عمل در یک ویژگی، یک عمل بر روی یک عدد است - یک عملیات.
  2. تابعیت (Pch) - نشان دهنده تغییر در ترتیب اقدامات است. نمونه اولیه Pch یک جمله پیچیده گفتاری است، بنابراین اکثر انواع Pch با حروف ربط فرعی "اگر"، "در غیر این صورت"، "در حالی که"، "برای" شروع می شوند. انواع دیگر رایانه های شخصی مکمل آنها هستند.

به هر حال، آیا می توانید باور کنید که در توضیحات C هیچ نامی برای عبارات محاسبه وجود ندارد - آنها به سادگی "عبارات" نامیده می شوند؟ پس از این دیگر جای تعجب نخواهد بود که هیچ نام و تداعی برای نوع فروع و در واقع کم نامی و تعاریف و تعمیم به طور کلی وجود ندارد. این به این دلیل است که K/R معروف ("The C Language", Kernighan/Ritchie, 1978) یک توصیف نیست، بلکه راهنمای استفاده از زبان است.

با این حال، من هنوز هم دوست دارم توضیحی در مورد زبان داشته باشم. بنابراین به او پیشنهاد می شود سیستم زبان برنامه لایه ای.

3. فصل 2. سیستم لایه. مختصر سی

هر توضیحی باید دقیق و بسیار مختصر باشد. در مورد زبان برنامه، توصیف جلویی دشوار است.

در اینجا ما یک برنامه داریم. از ماژول تشکیل شده است. ماژول ها از زیر روال ها و مجموعه ها (ساختار) تشکیل شده اند. برنامه های فرعی از عبارات فردی تشکیل شده است: اعلان ها، محاسبات، تابعیت. ده نوع زیردستی وجود دارد. فرعی، سطوح فرعی و زیر روال ها را به هم متصل می کند. تبلیغات متعددی نیز وجود دارد. با این حال، اعلان ها نه تنها در زیر روال ها و سطوح فرعی، بلکه در ماژول ها و مجموعه ها نیز گنجانده می شوند. و بیشتر عبارات از کلماتی تشکیل شده است که توصیف آنها به قدری دشوار است که معمولاً به سادگی در دو لیست آورده می شوند - کلمات اصلی و مشتق شده که در طول یادگیری و استفاده از زبان با آنها آشنا خواهید شد. بیایید علائم نگارشی و تعدادی عبارات دیگر را به این اضافه کنیم.

در چنین ارائه ای، درک اینکه چه کسی روی چه کسی ایستاده آسان نیست.

یک رویکرد سلسله مراتبی مستقیم برای توصیف یک زبان بسیار پیچیده خواهد بود. جستجوی دورگرد منجر به توصیف زبان بر اساس ماهیت گفتار و سمت دستوری آن می‌شود. بنابراین، سیستم لایه ای متولد شد، که تا حدی با سیستم تناوبی مندلیف منطبق است، که همچنین لایه بندی. همانطور که معلوم شد 42 سال پس از انتشار آن (1869)، تناوب این سیستم با الکترونیک مرتبط است. لایه های (1911، مدل اتم بور-رادرفورد). همچنین، سیستم های لایه ای و دوره ای در آرایش جدولی همه واحدها در یک صفحه مشابه هستند.

شرح واحدهای زبان مختصر است - فقط 10 نوع عبارت و 8 نوع واحد دیگر و همچنین معنی دار و بصری. اگرچه برای اولین آشنایی غیرعادی است.

واحدهای زبان به 6 سطح تقسیم می شوند:

  1. واحدها - ردیف های جدول
  2. بخش ها - گروه های خاص جنس ها (بخش هایی از خط اول)
  3. جنس - سلول ها (سطح اصلی تقسیم)
  4. ابرگونه - جداکننده گونه ها (سطح کمیاب)
  5. انواع - فرمول های واحد در پایین سلول یا به طور جداگانه
  6. الگوها - خود واحدها (فقط برای کلمات)

کلمات نمونه توصیف می کند واژه نامه - یک زیر سیستم جداگانه که از همان شش سطح تشکیل شده است.

مؤلفه گفتار زبان C کاملاً واضح است، اگرچه هنوز هم سزاوار توصیف است. اما بخش دستور زبان دقیقاً مربوط به کنترل کامپایل است که در طی آن نوع سوم برنامه ایجاد می شود - دستور. در اینجا به هیجان انگیزترین جنبه زبان C می رسیم: زیبایی.

4. فصول زیر. سی خوش تیپ

زبان C اساس برنامه نویسی مدرن است. چرا؟ اولاً به دلیل بیشترین مطابقت با گفتار. ثانیاً، زیرا به زیبایی محدودیت های پردازش شماره ماشین را دور زد.

شی دقیقا چه پیشنهادی داد؟ تصویر و لایه.

کلمه "تصویر" ترجمه ای از کلمه انگلیسی "type" است که از کلمه یونانی "prototype" - "type" آمده است. در زبان روسی، کلمه "نوع" سنگ بنای مفهوم بیان شده را نمی رساند، علاوه بر این، با معنای کمکی "نوع" اشتباه گرفته می شود.

در ابتدا، این تصویر یک مشکل محاسباتی صرفاً ماشینی را حل کرد و سپس به باندی برای تولد زبان‌های شی تبدیل شد.

لایه بلافاصله چندین مشکل را حل کرد - هم ماشین و هم اعمال می شود. بنابراین، بررسی با یک تصویر تک کار آغاز می شود و به یک لایه چند وظیفه ای می رود.

یکی از ویژگی‌های ناخوشایند برنامه‌نویسی تاریخی این است که بیشتر مفاهیم، ​​از جمله مفاهیم پایه، بدون تعریف ارائه می‌شوند. "زبان برنامه نویسی (نام رودخانه ها) دارای انواع عدد صحیح و شناور است ..." و آنها بیشتر خط خوردند. نیازی به تعریف «نوع» (تصویر) نیست، زیرا خود نویسندگان این موضوع را کاملاً درک نمی‌کنند و «برای وضوح» آن را خاموش می‌کنند. اگر به دیوار سنجاق شوند، تعریفی مبهم و بیهوده ارائه می دهند. پنهان شدن در پشت کلمات خارجی بسیار کمک می کند: برای نویسندگان روسی - پشت انگلیسی (نوع)، برای انگلیسی ها - پشت فرانسوی (زیر روال)، یونانی (چند شکلی)، لاتین (کپسولاسیون) یا ترکیبات آنها (چند شکلی ad-hoc).

اما این سرنوشت ما نیست. انتخاب ما تعاریف با گیره برجسته به زبان روسی خالص است.

تصویر

تصویر نام مقدماتی یک کمیت است که 1) ویژگی های ذاتی کمیت و 2) انتخاب عملیات برای کمیت را تعریف می کند.

کلمه "نوع" (نوع) مربوط به بخش اول تعریف است: "خواص ذاتی یک کمیت". اما معنای اصلی تصویر در قسمت دوم است: "انتخاب عملیات به مقادیر".

نقطه شروع برای معرفی یک تصویر در C یک محاسبه معمولی است، مانند عملیات جمع.

کاغذ ریاضیات، چه با دست نوشته شده باشد و چه چاپ شده، تفاوت زیادی بین انواع اعداد قائل نمی شود، معمولاً با فرض واقعی بودن آنها. بنابراین، عملیات پردازش آنها بدون ابهام است.

دستگاه ریاضیات اعداد را به اعداد صحیح و کسر تقسیم می کند. انواع مختلف اعداد به طور متفاوت در حافظه ذخیره می شوند و توسط دستورالعمل های مختلف پردازنده پردازش می شوند. به عنوان مثال، دستورالعمل های اضافه کردن اعداد صحیح و کسرها، دو دستورالعمل متفاوت مربوط به دو گره پردازنده متفاوت هستند. اما دستوری برای اضافه کردن آرگومان های عدد صحیح و کسری وجود ندارد.

کاربردی ریاضیات، یعنی زبان C، انواع اعداد را جدا می کند، اما عملیات را ترکیب می کند: جمع برای اعداد صحیح و/یا کسرها با یک علامت عمل نوشته می شود.

تعریف واضح تصویر مفهومی به ما این امکان را می دهد که به طور قطع در مورد دو مفهوم دیگر صحبت کنیم: بزرگی и عمل.

بزرگی و عملکرد

ارزش - شماره در حال پردازش

عمل - پردازش مقادیر مقادیر اولیه (آگومان ها) برای به دست آوردن عدد نهایی (کل).

بزرگی و عملکرد به هم مرتبط هستند. هر عملیات یک کمیت است زیرا یک نتیجه عددی دارد. و هر مقدار نتیجه انتقال یک مقدار به/از رجیستر پردازنده یعنی نتیجه عملیات است. با وجود این رابطه، نکته اصلی امکان شرح جداگانه آنهاست، البته با تکرار یک کلمه در بخش های مختلف فرهنگ لغت، چیزی که در MA3 اتفاق می افتد.

رویکرد ماشینی تمام اعداد استفاده شده توسط برنامه نویس را به دو دسته تقسیم کرد دستورات и داده ها. قبلاً هر دو عدد بودند، مثلاً دستورات در کدهای عددی نوشته می شد. با این حال، در زبان های کاربردی، دستورات دیگر اعداد نبودند و تبدیل شدند به حروف и علائم عمل. فقط "داده" به عنوان اعداد باقی می ماند، اما ادامه نامیدن آنها به این صورت پوچ است، زیرا در گذار از یک ماشین به دیدگاه ریاضی، اعداد مقادیری هستند که بر عدد اصلی تقسیم می شوند.داده ها) و نهایی (ضروری). "مقصد ناشناخته" احمقانه به نظر می رسد.

تیم ها نیز به دو نوع عمل تقسیم شدند: ریاضی و خدمات. اقدامات ریاضی - عملیات. بعدا به موارد رسمی میرسیم

در زبان‌های C، عمل‌های ریاضی معمول کاغذ و ماشین بدون ابهام یا تک، تقریباً به طور کلی چندتایی می‌شوند.

عملیات چندگانه چندین عملیات به یک نام با انواع مختلف آرگومان ها و اعمال متفاوت و از نظر معنی مشابه هستند.

آرگومان های عدد صحیح با یک عملیات کامل و آرگومان های کسری با یک عملیات کسری مطابقت دارند. این تفاوت به ویژه در عملیات تقسیم مشخص می شود، زمانی که عبارت 1/2 مجموع 0 را به دست می دهد نه 0,5. چنین نمادی با قوانین ریاضیات کاغذی مطابقت ندارد ، اما زبان C در تلاش نیست تا با آنها مطابقت داشته باشد (برخلاف Fortran) - مطابق با خودش بازی می کند. کاربردی قوانین

در مورد اختلاط اعداد صحیح و کسرها، تنها صحیح وارد می شود ریختن مقادیر آرگومان - تبدیل انتخابی یک مقدار از یک تصویر به تصویر دیگر. در واقع، هنگام جمع کردن یک عدد صحیح و یک عدد کسری، نتیجه کسری است، بنابراین تصویر عملیات برمی دارد عملیات تبدیل یک آرگومان عدد صحیح به مقدار کسری.

تعدادی عملیات باقی مانده است چندگانهو تنها. چنین عملیاتی فقط برای یک نوع آرگومان تعریف می‌شوند: باقیمانده تقسیم - آرگومان‌های عدد صحیح، پشته‌بندی (عملیات بیتی) - اعداد صحیح طبیعی. Ma3 تعدد عملیات را با علائم (#^) نشان می دهد که تصاویری را که عملیات برای آنها تعریف شده است نشان می دهد. این یک ویژگی مهم اما قبلاً نادیده گرفته شده در هر عملیات است.

همه توابع عملیات واحد دلخواه هستند. استثنا اپراتورها هستند - توابع غیر براکتی، در زبان تعبیه شده است (عملیات اصلی).

معاونت

معاونت - اقدام همراه با عملیات.

اگر عملیات را به عنوان عمل اصلی در نظر بگیریم، می‌توان دو مورد همراهی را که عملیات را ارائه می‌کنند و با آن متفاوت است، تشخیص داد. اینها 1) کنترل متغیر و 2) تبعیت هستند. این عمل نامیده می شود معاونت.

در اینجا لازم است که در مورد ترجمه روسی کتاب های درسی برنامه نویسی منحرف شویم و به طور جداگانه بگوییم. کلمه جدیدی در متن K/R برای ثبت اعمال معرفی شد بیانیه (بیان)، که تلاش می کرد مفاهیم فرمان ماشین را به اقدامات مختلف تقسیم کند: 1) عملیات، 2) اعلام، و 3) تابعیت (به نام "ساختارهای کنترل"). این تلاش توسط مترجمان روسی دفن شد و کلمه "اپراتور" را جایگزین "بیان" کرد که:

  1. مترادف با کلمه ماشینی "فرمان" شده است.
  2. معلوم شد که مترادف با عبارت "نشانه عمل" است.
  3. و همچنین تعداد نامحدودی از مقادیر اضافی دریافت کرد. یعنی تبدیل شده به چیزی شبیه به مقاله انگلیسی “اوهههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههه”

اقدامات همراه را در نظر بگیرید، یا معاونت.

کنترل متغیر

کنترل متغیر (UP) - ایجاد/حذف سلول های متغیر.
UE به طور ضمنی هنگام اعلام یک متغیر رخ می دهد، که قبلاً به دلیل دیگری نوشته شده است - برای نشان دادن تصویر مقدار. فقط یک نما به صراحت مدیریت می شود متغیرهای اضافی با استفاده از توابع malloc() و free().

لازم به ذکر است که اقدامات ضمنی برای نوشتن راحت تر است ، زیرا آنها اصلاً نیازی به نوشتن ندارند ، اما درک آنها دشوارتر است - در نظر گرفتن و تفسیر آنها دشوارتر است.

تبعیت

تبعیت - اتصال/غیرفعال کردن بخش های لایه

زبان C یک روش کاربردی برای کنترل ترتیب اقدامات، متفاوت از اسمبلر - تابع ارائه می دهد. یک جمله پیچیده گفتاری را با تقسیم واضح به بخش اصلی (بند فرعی) و بخش فرعی (بخش های زیرسطحی/فرعی) منعکس و توسعه می دهد.

هر دو اعلامیه و تسلیم کاملاً بر اساس این مفهوم هستند لایه.

لایه

لایه مجموعه محدودی از عبارات انتخابی تک سطحی است.

لایه به طور صریح و ضمنی چندین وظیفه را همزمان بر عهده گرفت:

  1. سازماندهی برنامه
  2. محدود کردن دید نام ها (به طور ضمنی)،
  3. مدیریت متغیرها (سلول های حافظه) (ضمنی)،
  4. تعریف بندهای فرعی برای تبعیت،
  5. تعاریف توابع و انتخاب ها و موارد دیگر.

در زبان های ماشین مفهوم لایه وجود نداشت، بنابراین در K/R ظاهر نمی شد و اگر چیزی وجود نداشت، معرفی آن در کتاب های بعدی بدعت و آزاداندیشی خواهد بود. بنابراین، مفهوم لایه به هیچ وجه ظاهر نشد، اگرچه بسیار مفید و کاملاً بدیهی است.

بدون لایه، توضیح مختصر و واضح بسیاری از اقدامات و قوانین برنامه غیرممکن است. به عنوان مثال، چرا گفتو به سادگی سه کوپک بد است، و زمان دشوار خوب است. شما فقط می توانید با درماندگی قسم بخورید، همانطور که دایکسترا انجام داد ("مهارت برنامه نویسان تابعی است که به طور معکوس به دفعات وقوع عبارات goto در برنامه های آنها بستگی دارد." به طور خلاصه، فقط بزها از goto استفاده می کنند. سطح توجیه خداوند است.) درست است، اگر کتاب های شما اصلاً لازم نیست چیزی را توضیح دهیم، این خیلی ترسناک نیست، اما، همانطور که قبلاً گفتیم، این سرنوشت ما نیست.

به هر حال، می توان فرض کرد که دن ریچی، goto را دقیقاً به عنوان کلیدی برای جستجوی یک مفهوم بی نام ترک کرده است، زیرا هیچ نیاز یا زیبایی در عبارت goto وجود نداشت. اما نیاز به توضیحی ساده و قابل فهم در مورد اصول جدید زبان وجود داشت که خود ریچی مایل به ارائه آن نبود و دقیقاً بر اساس این مفهوم است. لایه.

انحراف

انحراف - تغییر ویژگی های معمول نام جدید.

مهمترین انحراف دقیقاً مربوط به خصوصیات لایه برنامه است و با یک کلمه "static" توصیف می شود که در هر نوع لایه معنای متفاوتی دارد.

5. فصل آخر. اشتراک زبان های کاربردی

زبان های کاربردی هستند فیگوراتیو زبان ها (داشتن یک تصویر، "تایپ شده"). آنها بر اساس استفاده صریح یا ضمنی از تصویر هستند. علاوه بر این، در اینجا دوباره یک تناقض ظاهر می شود: یک تصویر صریح قابل درک تر است، اما کمتر راحت است، و بالعکس.

ماتریوشکا سی. سیستم زبان برنامه لایه ای

(طرح جدول هنوز تحویل داده نشده است، بنابراین جدول با یک تصویر نشان داده شده است.)

پس از C، توسعه زبان های کاربردی مسیر افزایش فیگوراتیو بودن آنها را در پیش گرفت. مهمترین چیز برای درک تصویرسازی بالا، نسل مستقیم C - زبان C++ است. او ایده انتخاب دلخواه عملیات برای کمیت ها را توسعه می دهد و آن را بر اساس انتخاب عبارت مصنوعی، که یک نام جدید - شی دریافت می کند، تجسم می بخشد. با این حال، C++ به دلیل بارگذاری بیش از حد انواع مجموعه جدید و قوانین مرتبط با آنها به اندازه C مختصر و رسا نیست. به هر حال، بیایید در مورد "بیش از حد" صحبت کنیم.

اضافه بار و پلی مورفیسم

کلمه "overload" یک اصطلاح منسوخ در یادگیری ماشینی برای ایجاد است عملیات های متعدد.

برنامه نویسان ماشین (سیستم). کثرت عملیات به خوبی می تواند آزاردهنده باشد: "این علامت (+) به چه معناست: اضافه کردن اعداد صحیح، اضافه کردن کسرها یا حتی جابجایی؟! در زمان ما این طور نمی نوشتند!» از این رو معنای منفی کلمه انتخاب شده ("بیش از حد" ، "خسته"). برای یک برنامه نویس برنامه، چندین عملیات سنگ بنای اصلی، دستاورد و میراث اصلی زبان C هستند، آنقدر طبیعی که اغلب به رسمیت شناخته نمی شوند.

در زبان C++ کثرت نه تنها به عملیات اصلی، بلکه به توابع - هم فردی و هم ترکیب شده در کلاس ها - متدها گسترش می یابد. با چندین روش، توانایی نادیده گرفتن آنها در کلاس های توسعه یافته به وجود آمد که به طور مبهم "چند شکلی" نامیده می شد. ترکیب چندشکلی و اضافه بار یک مخلوط انفجاری را تولید کرد که به دو چندشکلی تقسیم شد: "واقعی" و "تعدادی". درک این موضوع تنها با وجود نام های تعیین شده امکان پذیر است. راه تبلیغ با نام های خارجی هموار شده است.

اعلان فرم "بیش از حد" در کلمه بهتر بیان می شود اطلاعیه تکمیلی - افزودن اعلان تابعی به همین نام با آرگومان های یک تصویر متفاوت.

اعلان شکل "چند شکلی" بهتر است نامیده شود اعلام مجدد - یک اعلان همپوشانی در یک لایه پسوند جدید تابعی به همین نام با آرگومان های همان تصویر.

سپس به راحتی می توان فهمید که روش های مشابه تصاویر مختلف (استدلال) - اضافه اعلام کردو یک تصویر - دوباره اعلام کرد.

کلمات روسی تصمیم می گیرند.

باند

توجه به مفاهیم زبان های بسیار مجازی اهمیت تعریف واضح مفاهیم اساسی را تأیید می کند. با توصیف صحیح زبان C، یادگیری زبان های با فیگور بالا آسان و لذت بخش خواهد بود.

این امر به ویژه برای زبان های بسیار مجازی ضمنی (PHP، جاوا اسکریپت). برای آنها اهمیت اشیاء (تصاویر ترکیبی) حتی بیشتر از C++ می شود، اما خود مفهوم تصویر به صورت ضمنی و گریزان می شود. از نظر راحتی، ساده تر شده اند، اما از نظر درک، دشوارتر شده اند.

بنابراین، شما باید یادگیری زبان های برنامه نویسی را با زبان C شروع کنید و به ترتیب ظاهر شدن زبان های خانواده C پیش بروید.

همین امر در مورد توصیف زبان ها نیز صدق می کند. زبان های مختلف دارای مجموعه ای از جنسیت های یکسان یا کوچکتر از زبان C هستند. تعداد انواع و نمونه ها ممکن است در هر دو جهت متفاوت باشد: C++ دارای انواع بیشتری از C است، در حالی که جاوا اسکریپت دارای انواع کمتری است.

زبان MySQL شایسته ذکر ویژه است. به نظر می رسد هیچ چیز مشترکی وجود ندارد ، اما ماتریوشکا او را کاملاً توصیف می کند و آشنایی با او سریع تر و آسان تر می شود. که مهم است، با توجه به اهمیت آن برای وب - جاده غذاخوری برنامه نویسی مدرن. و جایی که MySQL وجود دارد، SQL های دیگر نیز وجود دارد. خوب، همه نوع فورترن-پاسکال-پایتون هم توسط ماتریوشکا توصیف می شود، به محض اینکه دستشان به دست می آید.

بنابراین، چیزهای بزرگی در انتظار ما هستند - یک توصیف کاربردی از زبان C و یک توصیف یکپارچه از زبان هایی که به دنبال آن هستند. "اهداف ما روشن است، وظایف ما مشخص است. دست به کار شوید، رفقا! (تشویق طوفانی، طولانی، تبدیل به تشویق. همه بلند می شوند.)"

نظرات شما با توجه بسیار شنیده می شود، کمک شما در ایجاد وب سایت عروسک های تودرتو با سپاس فراوان پذیرفته خواهد شد. اطلاعات کامل تر درباره کتاب در وب سایت موجود است که به طرز هوشمندانه ای در Matryoshka C پنهان شده است.

منبع: www.habr.com

اضافه کردن نظر