<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های شبنم مرادی</title>
        <link>https://virgool.io/feed/@m_79684831</link>
        <description>کارشناسی مهندسی نرم افزار.</description>
        <language>fa</language>
        <pubDate>2026-06-28 09:45:55</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/3148900/avatar/OPnljX.jpg?height=120&amp;width=120</url>
            <title>شبنم مرادی</title>
            <link>https://virgool.io/@m_79684831</link>
        </image>

                    <item>
                <title>پروتکل‌های اینترنت اشیا ( معرفی 13 پروتکل IoT )</title>
                <link>https://virgool.io/@m_79684831/%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%87%D8%A7%DB%8C-%D8%A7%DB%8C%D9%86%D8%AA%D8%B1%D9%86%D8%AA-%D8%A7%D8%B4%DB%8C%D8%A7-%D9%85%D8%B9%D8%B1%D9%81%DB%8C-13-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-iot-csn3dhous41p</link>
                <description>گرد آورنده:مهندس شبنم مرادیایمیل:shbnmmoradi3@gmail.com@پروتکل‌های اینترنت اشیا (IoT Protocols) بخش مهمی از تکنولوژی اینترنت اشیا هستند و بدون آنها سخت‌افزارها بدون استفاده می‌شوند چرا که پروتکل‌های IoT سخت‌افزارها را قادر می‌سازد تا داده‌ها به روشی ساختاریافته و معنادار مبادله شوند. وقتی صحبت از اینترنت اشیا می‌شود، ارتباط به ذهنمان می‌رسد. تعامل بین سنسورها، دستگاه‌ها، گیت‌ها، سرورها و برنامه‌های کاربردی کاربر، ویژگی اساسی است که اینترنت اشیا را شکل می‌دهد. اما آنچه که این چیزهای هوشمند را قادر می‌سازد تا با یکدیگر ارتباط برقرار کنند، پروتکل اینترنت اشیا است که می‌توان آن را زبانی دانست که ابزار اینترنت اشیا برای برقراری ارتباط از آن استفاده می‌کند.مزیت و ارزش اینترنت اشیاءبه خاطر توانمندسازی اجزای مختلف برای ارتباط با یکدیگراست؛ این توانایی برقراری ارتباط همان چیزی است که داده‌ها را از دستگاه‌های مختلف خط اینترنت اشیا دریافت کرده و به سرورهای مرکزی می‌رساند. این ارتباط از طریق پروتکل‌های اینترنت اشیاء اتفاق می‌افتد که تضمین می‌کند داده‌ها از دستگاه‌های نقطه پایانی مانند سنسورها دریافت شده و توسط مراحل بعدی‌تر در این محیط متصل درک می‌شوند؛ فارغ از اینکه مراحل بعدی آن داده، یک دستگاه نقطه پایانی دیگر باشد یا یک دروازه و یا یک اپلیکیشن. به زبان ساده می‌توان گفت پروتکل های اینترنت اشیا به اندازه‌ی خود چیزها برای وجود اینترنت اشیاء حیاتی هستند.چندین پروتکل اینترنت اشیا وجود دارد که هر کدام قابلیت‌ها یا ترکیب از ویژگی‌های خاص را ارائه می‌دهند که باعث می‌شود نسبت به دیگری برای استقرار اینترنت اشیاء خاص ترجیح داده شوند. هر پروتکل اینترنت اشیا ارتباط دستگاه به دستگاه، دستگاه به دروازه یا دستگاه به ابر / مرکز داده و یا ترکیبی از این ارتباطات را فعال می‌کند. عواملی مانندموقعیت جغرافیایی و یا موقعیت مکانی خاص، نیازهای مصرف انرژی، گزینه‌های قابل کارکرد با بارتی، وجود موانع فیزیکی و هزینه‌ها مشخص می‌کنند که کدام پروتکل برای استقرار اینترنت اشیاء بهینه است.لایه‌های مختلف معماری اینترنت اشیاسیستم‌های شبکه به عنوان دسته‌ای از تکنولوژی‌ها ساخته شده‌اند. این سیستم‌ها اغلب در یک مدل مرجع تجسم می‌شوند؛ نمونه‌ای از چارچوب که تکنولوژی از آن برای مفهوم‌سازی نحوه‌ی انتقال داده‌ها در کل دسته استفاده می‌کند. شناخته‌شده‌ترین آنها مدل مدل اتصال متقابل سامانه‌های باز (OSI) است که هفت لایه را فهرست می‌کند. این لایه‌ها عبارتند از:لایه‌ی فیزیکیلایه‌ی پیوند دادهلایه‌ی شبکهلایه‌ی انتقاللایه‌ی جلسهلایه‌ی نمایشلایه‌ی کاربرداینترنت اشیاء نیز در مدلی چند لایه بیان می‌شود. اگرچه برخی از مدل هفت لایه OSI استفاده می‌کنند برخی دیگر شامل موارد زیر می‌شود:مدل سه لایه: ادراک، شبکه و      کاربردمدل چهار لایه: ادراک،      پشتیبانی، شبکه و کاربردمدل پنج لایه: ادراک، انتقال،      پردازش، کاربرد و کسب و کار یا لایه‌ی فیزیکی، یپوند داده، شبکه، انتقال و      کاربردپروتکل‌های مورد استفاده معمولا بر اساس لایه متفاوت هستند. به این ترتیب، یک اکوسیستم IoT می‌تواند چندین پروتکل داشته باشد و هر پروتکل امکان ارتباط در لایه‌های مختلف و یا بین پروتکل‌ها را فراهم کند. به عنوان مثال، بلوتوث و وایرلس، از ارتباط در پایین‌ترین لایه‌ها پشتیبانی می‌کنند در حالی که سرویس توزیع داده‌ها (DDS) و MQTT در لایه‌ی کاربرد کار می‌کنند.مروری بر پروتکل‌های اینترنت اشیا (IoT)همانطور که گفتیم تکنولوژی‌ها می‌توانند هنگام ساخت شبکه‌ای برای اکوسیستم IoT خود از چندین پروتکل استفاده کنند. پروتکل های شبکه‌ی اینترنت اشیا برای اتصال دستگاه‌ها از طریق شبکه مورد استفاده قرار می‌گیرند. این مجموعه از پروتکل‌ها معمولا از طریق اینترنت استفاده می‌شوند.پروتکل اینترنت اشیاء : 1. پروتکل برنامه‌های محدود شده (Constrained Application Protocol)درحالی که زیرساخت‌های اینترنت موجود برای تمام دستگاه‌های IoT به طور رایگان موجود و قابل استفاده است، در اکثر موارد استفاده از اینترنت اشیا بسیار سنگین و پرمصرف است. پروتکل برنامه‌های محدودشده (CoAP) برای ترجمه‌ی مدل HTTP طراحی شد تا بتوان از آن در محیط‌های محدودکننده‌ی دستگاه و شبکهاستفاده کرد. پروتکل CoAP اینترنت اشیا برای پاسخگویی به نیازهای سیستم‌های IoT مبتنی بر HTTP طراحی شده و برای برقراری ارتباط امن بین نقاط پایانی، بر پروتکل بسته داده‌ی کاربر (UDP) متکی است. با اجازه‌ی پخش و پخش چندگانه، UDP می‌تواند داده‌ها را به چندین میزبان منتقل کند درحالی که سرعت ارتباط و استفاده از پهنای باند کم را حفظ می‌کند؛ این کار باعث می‌شود این پروتکل برای شبکه‌های بی‌سیمی که معمولا در محیط‌های ماشین به ماشین (M2M) با محدودیت منابع استفاده می‌شوند، مناسب باشد.نکته‌ی مشترک دیگر CoAP با HTTP معماری انتقال بازنمودی حالت (RESTful) است که از یک مدل تعاملی درخواست/پاسخ بین نقاط پایانی برنامه پشتیبانی می‌کند. بعلاوه، پروتکلCoAP اینترنت اشیا از روش‌های اولیه‌ی دریافت، ارسال، قرار دادن و حذف HTTP استفاده می‌کند که به لطف آن می‌توان در هنگام ارتباط بین بخش‌ها از ابهام جلوگیری کرد. پروتکل CoAP دارای کیفیت خدمات است که برای کنترل پیام‌های ارسال‌شدهاستفاده می‌شود و آنها را به عنوان «قابل تایید» یا «غیرقابل تایید» مشخص می‌کند و نشان می‌دهد آیا دریافت‌کننده باید تایید را بازگرداند یا خیر.از دیگر ویژگی‌های جالب CoAP این است که این پروتکل از مذاکره‌ی محتوا و مکانیزم کشف منابعپشتیبانی می‌کند. جدای از انتقال داده‌های IoT، این پروتکل برای تبادل امن پیام‌ها در لایه‌ی انتقال از امنیت لایه انتقال دیتاگرام (DTLS) استفاده می‌کند. CoAP بطور کامل نیازهای یک پروتکل بسیار سبک را برای برآوردن نیازهای دستگاه‌های باتری‌دار یا کم‌انرژیبرطرف می‌کند و در مجموع زمانی که صبحت از سیستم‌های IoT مبتنی بر وب می‌شود، مناسب است.پروتکل اینترنت پیام‌ها (Message Queuing Telemetry Transport)اشیا : 2. انتقال تله‌متری صف‌بندیاحتمالا گسترده‌ترین استاندارد استفاده شده در اینترنت اشیاء صنعتی تا به امروز، پروتکل انتقال تله‌متری صف‌بندی پیام‌ها (MQTT) است؛ یک پروتکل پیام‌رسان سبک وزن از نوع انتشار و اشتراک (pub/sub). این پروتکل برای دستگاه‌های مبتنی بر باتری طراحی شده و معماری آن ساده و سبک‌وزن است که باعث مصرف کم‌تر انرژی در دستگاه‌ها می‌شود. پروتکل MQTT روی پروتکل TCP/IP کار شده و به ویژه برای شبکه‌های ارتباطی غیرقابل اعتماد طراحی شده است تا به مشکل تعداد فزاینده‌ی دستگاه‌های کم‌مصرف ارزان قیمت کوچک که در سال‌های اخیر در شبکه ظاهر شده‌اند، پاسخ دهد.پروتکل mqtt در اینترنت اشیاپروتکل MQTT مبتنی بر مدل اشتراک، انتشار و کارگذار است. در این مدل، وظیفه‌ی ناشر جمع‌اوری داده و ارسال اطلاعات به مشترکین از طریق لایه‌ی میانجی یعنی کارگذار است. از سوی دیگر نقش کارگذار تضمین امنیت با بررسی متقابل تایید ناشران و مشترکان است.QoS0:(حداکثر یکبار): کمترین حالت اعتماد اما همچنین سریع‌ترین حالت است. انتشار ارسال شده است اما تاییدیه دریافت نشده است.QoS1:(حداقل یکبار): تضمین می‌کند که پیام حداقل یکبار تحویل داده      شده است اما ممکن است موارد تکراری دریافت شود.QoS2:(دقیقا یکبار): قابل اعتمادترین حالت که در عین حال بیشترین پهنای باند را مصرف می‌کند. تکرارها کنترل می‌شوند تا اطمینان حاصل شود پیام تنها یکبار ارسال شده است.امنیت اینترنت اشیا چیست؟هر روزه شاهد افزایش دستگاه‌های هوشمند هستیم که به اینترنت وصلند مثل مسواک هوشمند، آیینه هوشمند، میز ها و بالش‌ها و تخت‌های هوشند. این لیست انتهایی ندارد و دنیا در حال تبدیل به شبکه‌ای از اشیا است که اطلاعات شخصی و مهم ما را جمع می‌کنند. در این میان باید استانداردهای جهانی تولید این دستگاه‌ها برای کنترل امنیت آنها ایجاد و بهینه شود.امنیت نرم افزارها و سخت افزارها باید تامین شود تا وسایل IoTبتوانند کار خود را به خوبی انجام دهند. بدون امنیت، هر وسیله‌ای ممکن است هک شود و کنترل آن به دست هکر بیفتد و یا اطلاعات دیجیتالی کاربر دزدیده شود. مثلا در سال ۲۰۱۶، هکری مدل خاصی از دوربین های مداربسته را هک کرد و سیصدهزار دستگاه ضبط کننده ویدئو شروع به حمله به چندین وب‌سایت شبکه اجتماعی مانند توئیتر کردند و آنها را بیش از دو ساعت با اختلال مواجه کرد. این نمونه‌ای از نتیجه امنیت ضعیف در اینترنت اشیا است.برای تامین امنیت اینترنت اشیا باید به موارد زیر توجه کرد:1. رعایت استانداردهای ساخت2. مدیریت و آپدیت3. مقاومت فیزیکی4. دانش و آگاهی کاربروقتی امنیت هنگام طراحی در نظر گرفته شود دیگر نیازی نیست که پس از وقوع هک و رخنه اقدام به تامین امنیت کرد. تامین امینت در طراحی، مساله مهم و حیاتی برای مشتری و سازمان‌ها است. از آنجایی که وسایل اینترنت اشیا به اینترنت وصل هستند پتانسیل هک شدن دارند و از طرفی بسیاری از آنها به صورت تعبیه شده امنیتی ندارند و انها را تبدیل به هدف خوبی برای هک می‌کند.برای دوری از رخنه‌های امنیتی، تولیدکنندگان باید راهکارهای مختلفی برای حفاظت از دسترسی از طریق اینترنت را پیاده سازی کنند.دادن آموزش‌های لازم به کاربر هنگام استفاده از اینترنت اشیا، باعث می‌شود رفتارهای پرخطر را هنگام استفاده از iot بشناسند مثلا اطلاعات آنها چگونه استفاده و به اشتراک گذاشته می‌شود و یا چگونه می‌توانند جمع‌آوری برخی اطلاعات را خاموش کنند.داشتن پسوردهای ضعیف و قابل حدس، نداشتن مکانیزم آپدیت امنیتی، نرم افزارها و سیستم عامل های قدیمی و بدون Patch، انتقال و ذخیره سازی ناامن دیتا همگی از مواردی است که امنیت اینترنت اشیا را به خطر می‌اندازد.مزایا و معایب اینترنت اشیامزایای پلتفرم iot عبارتند از:افزایش دقت و کاراییبهینه‌سازی منابعکاهش نیاز به حضور انسانصرفه‌جویی درزمانبهبود جمع‌آوری اطلاعاتمعایب اینترنت اشیا عبارتند از:امنیت: به دلیل  کار روی شبکه ممکن است مورد حمله هکرها قرار گیرد.حریم شخصی:ریزترین جزییات و اطلاعات شخصی را در می‌آورد.پیچیدگی: طراحی،پیاده‌سازی و اجرای تکنولوژی‌های بزرگ اینترنت اشیا بسیار پیچیده است.کاهش شغلقدم بعد از اینترنت اشیا چیست؟قدم بعدی در اینترنت اشیا این است که پیچیدگی را کاهش دهد تا استفاده از آن راحت تر شود. آیا برای سرچ، استفاده از مرورگر راحت‌تر است یا دستیار صوتی؟ برای برخی تایپ کردن راحت‌تر و قابل اطمینان‌تر است. همچنین افزایش امنیت و رعایت بیشتر حریم خصوصی از دیگر مواردی است که در اینترنت اشیا باید مورد توجه قرار گیردآینده اینترنت اشیا چگونه خواهد بود؟در آینده ماشین‌ها می‌توانند حتی قدم زدن در جنگل را هم برای ما شبیه‌سازی کنند و اینترنت اشیا تا این حد می‌تواند با زندگی روزمره ما گره بخورد: سیستم‌های کامپیوتر با زندگی در دنیای واقعی یکپارچه می‌شوند. در واقع می‌توان اینگونه گفت که قدم بعد از اینترنت اشیا هوش مصنوعی است تا به آنالیز و تحلیل دیتای به دست آمده بپردازد.پروتکل اینترنت اشیا : وای فای (WiFi)ایجاد یک شبکه‌ی وای فای مستلزم دستگاه‌هایی است که بتوانند سیگنال‌های وایرلسارسال کنند؛ دستگاه‌هایی مانند تلفن، کامپیوتر و روتر. در خانه از روتر برای انتقال اتصال اینترنت از شبکه‌ی عمومی به یک شبکه‌ی خانگی یا اداری خصوصی استفاده می‌شود. پروتکل وای فای (WIFI) یک اتصال اینترنت فراهم می‌کند تا دستگاه‌های نزدیک به آن که در محدوده‌ی خاصی قرار دارند، متصل شوند. راه دیگر برای استفاده ازWiFi ایجاد یک نقطه اتصال یاHotspot وای فای است؛ یعنی تلفن‌ها یا کامپیوترها می‌توانند با پخش یک سیگنال، اتصال اینترنت بی‌سیم یا سیمی را با دستگاه‌های دیگر به اشتراک بگذارند.وای فای از امواج رادیویی استفاده می‌کند که اطلاعات را در فرکانس‌های مشخصی مانند 2.4 گیگاهرتز یا 5 گیگاهرتز پخش می‌کند. هر دوی این محدوده فرکانس‌ها دارای تعدادی کانال هستند که دستگاه‌های بی‌سیم مختلف می‌توانند با آن کار کنند و به توزیع بار کمک می‌کنند تا اتصال‌های جداگانه قطع نشوند. این مساله تا حد زیادی از ازدیاید شبکه‌های بی‌سیم جلوگیری می‌کند. بُرد معمولی برای اتصال وای فای استاندارد حدودا 100 متر است. با این حال، معمول‌ترین برد محدود به 10 تا 35 متراست.پوشش موثر شبکه تا حد زیادی تحت تاثیر قدرت آنتن‌دهی یا فرکانس انتقالاست. محدوده و سرعت اتصال اینترنت وای فایبستگی به محیط و پوشش داخلی یا خارجی آن دارد. بنابراین، سرعت دستگاه‌های مختلفی که از اتصال اینترنت وای فای استفاده می‌کنند با نزدیک شدن به منبع اصلی افزایش می‌یابد و در مقابل با دور شدن از منبع نیز این سرعت کاهش می‌یابد.پلتفرم اینترنت اشیا چیست؟پلتفرم اینترنت اشیا (IoT Platform)، با فراهم کردن ابزارها و قابلیت‌های توکار و تسهیل و ارزان‌تر کردن اینترنت اشیا برای کسب و کارها، توسعه‌دهندگان و کاربران، نقطه شروعی برای ساخت سیستم‌های اینترنت اشیا (IoT Systems) فراهم می‌کند. پلتفرم اینترنت اشیا، یک مولفه حیاتی برای اکوسیستم و بازار دارای رشد سریع اینترنت اشیا محسوب می‌شود.پلتفرم‌های اینترنت اشیا، ارزش زیادی را برای کسب و کارها فراهم می‌کنند و به آن‌ها امکان کمینه کردن هزینه‌ها، شتاب‌دهی راه‌اندازی و ساده‌سازی فرایندها را می‌دهند. اگرچه، برای بسیاری از فعالان این حوزه، هنوز هم مفهوم پلتفرم IoT شفاف نیست. در ادامه، تعریفی ساده شده و غیر فنی از پلتفرم اینترنت اشیا ارائه می‌شود.برای درک آنکه پلتفرم اینترنت اشیا چیست، فرد باید درک صحیحی از آنچه در یک سیستم اینترنت اشیا به وقوع می‌پیوندد داشته باشد. در بخش پیشین آنچه در یک سیستم اینترنت اشیا به وقوع می‌پیوندد، تشریح شد. در این بخش به صورت خلاصه این موضوع و ارتباط آن با پلتفرم اینترنت اشیا نیز مورد بررسی قرار می‌گرد.یک سیستم کامل اینترنت اشیا، به سخت‌افزار نیاز دارد. از جمله این سخت‌افزارها می‌توان به حسگرها یا دستگاه‌ها اشاره کرد. این حسگرها و دستگاه‌ها داده‌ها را از محیط گردآوری می‌کنند (برای مثال، حسگر رطوبت) و یا اقداماتی را در محیط انجام می‌دهند (برای مثال، آبیاری زمین‌های زراعی). یک راهکار کامل اینترنت اشیا، نیاز به متصل بودن دارد. سخت‌افزار نیاز به راهی برای انتقال همه داده‌ها به ابر (مانند ارسال داده‌های رطوبت) و یا نیاز به راهکاری برای دریافت دستورات از ابر دارد (مانند، آب دادن مزرعه در لحظه). این کار با استفاده از اشکال بلوغ یافته اتصالات مانند سلولی، ماهواره یا وای‌فای و یا روش‌های اتصالات نوین‌تر و با تمرکز بیشتر روی اینترنت اشیا، مانند رنج گسترده(Long Range) باشد.استانداردها و پروتکل‌های طراحی رابط کاربریصفحات وب در حال حاضر از قالب HTML با برگه سبک نگارش (Style Sheet) آبشاری استفاده می‌کنند. این مورد موجب می‌شود تا سرویس برای استفاده قابل اعتمادتر شود. استانداردها و پروتکل‌هایی در طراحی رابط کاربردی دارای بیشترین میزان استفاده هستند که رابط کاربری را نه تنها کاربر پسند، بلکه به راحتی قابل پذیرش می‌کنند.اگرچه، اینترنت اشیا این استاندارد را ندارد. انتخاب پلتفرم اینترنت اشیا (IoT Platform) مسئله بسیار حائز اهمیتی است. اینترنت اشیا می‌تواند به تشخیص روشی که پلتفرم با سیستم تعامل دارد کمک کند. بنابراین، کاربر قادر به آن می‌شود که با دستگاه‌ها و شبکه‌ها با استانداردهای خودش تعامل داشته باشد. داشتن پروتکل‌های مشابه برای داشتن یک تعامل موفق، مسئله مهمی است.حریم خصوصی و اینترنت اشیابا وجود حجم انبوه داده‌هایی که حسگرها از همه چیز گردآوری می‌کنند، اینترنت اشیا با مشکلات گسترده حریم خصوصی و امنیت دست و پنجه نرم می‌کند. برای مثال، یک خانه هوشمند مفروض است. این خانه هوشمند می‌تواند بگوید که ساکنان چه زمانی از خواب بیدار می‌شوند (وقتی قهوه‌جوش خودکار فعال می‌شود)، و اعضای خانه چگونه دندان‌های خود را مسواک می‌زنند (به لطف مسواک هوشمند)، ساکنان خانه به کدام کانال رادیویی گوش می‌دهند (به وسیله اسپیکرهای هوشمند)، چه نوع غذایی را می‌خورند (به لطف گاز یا یخچال هوشمند)، کودکان ساکن خانه چه افکاری دارند (به وسیله اسباب‌بازی‌های هوشمند) و چه کسانی به آن خانه رفت و آمد دارند (به کمک زنگ درهای هوشمند). در حالی که شرکت‌ها در جایگاه اول با فروش دستگاه‌های هوشمند کسب درآمد می‌کنند، در جایگاه بعدی با فروش داده‌های کاربران دستگاه‌های خود به کسب درآمد می‌پردازند.انقلاب اینترنت اشیا: آینده اینترنت اشیا چیست؟با کاهش قیمت حسگرها و ارتباطات، افزودن دستگاه‌های جدید به اینترنت اشیا، مقرون به صرفه‌تر است؛ حتی اگر در برخی موارد، مزایای کمی مشهود باشد. استقرار اینترنت اشیا در اغلب موارد در گام‌های اولیه است. اغلب شرکت‌ها حوزه اینترنت اشیا در حال حاضر در گام آزمایشی (Trial Stage) به سر می‌برند، زیرا فناوری‌های لازم، برای آن‌ها شامل فناوری حسگر، اتصالات 5G و تحلیل‌های قدرت گرفته از اینترنت اشیا، خودشان همچنان در مراحل آزمایشی به سر می‌برند. این امر نشان‌گر بازار بکر این حوزه و اشباع نشدن آن و در عین حال، آینده درخشان و اقبال عمومی است که برای اینترنت اشیا وجود دارد.اینترنت اشیا و داده‌هایک دستگاه اینترنت اشیا ممکن است دارای یک یا تعداد بیشتری حسگر باشد که برای گردآوری داده‌ها مورد استفاده قرار می‌گیرند. آنچه که این حسگرها گردآوری می‌کنند بستگی به دستگاه و وظایف آن دارد. حسگرهای درون ماشین‌های صنعتی، می‌توانند درجه حرارات یا فشار را اندازه‌گیری کنند.یک دوربین امنیتی، ممکن است یک حسگر مجاورتی (Proximity Sensor) همراه با حسگر صدا و فیلم باشد؛ در حالیکه ایستگاه آب و هوای خانگی، احتمالا دارای حسگر رطوبت است. همه این داده‌ها و داده‌های بیشتر، باید به جایی ارسال شوند. این یعنی دستگاه‌های اینترنت اشیا نیاز به انتقال داده‌ها دارند و این کار را با استفاده از وای-فای، 5G ،4G و دیگر موارد انجام دهند.تحلیلگران فناوری در شرکت بین‌المللی داده(International Data Corporation | IDC) پیش‌بینی کرده‌اند که طی پنج سال، دستگاه‌های اینترنت اشیا ۷۹٫۴ زتابایت(Zettabytes) داده ایجاد خواهند کرد. برخی از این داده‌های اینترنت اشیا کوچک و متناوب هستند. به روز رسانی‌های سریع مانند خواندن یک حسگر یا خواندن از یک کنتور دیجیتال. دیگر دستگاه‌ها ممکن است حجم انبوهی از ترافیک‌های داده‌ای را ایجاد کنند که به عنوان مثالی برای این مورد، می‌توان به دوربین‌های نظارتی با استفاده از بینایی کامپیوتری (Computer Vision) اشاره کرد.شرکت بین‌المللی داده می‌گوید که حجم داده‌های ساخته شده با دستگاه‌های اینترنت اشیا، طی چند سال آینده به سرعت رشد خواهند کرد. بیشتر داده‌های تولید شده توسط نظارت ویدئویی تولید می‌شود، اما دیگر کاربردهای صنعتی و پزشکی، داده‌های بیشتری را در طول زمان تولید می‌کند. هواپیماهای بدون سرنشین(Drones) پیشران بزرگی برای ساخت داده‌ها با استفاده از دوربین‌ها هستند. با نگاهی وسیع‌تر، می‌توان مشاهده کرد که وسایل نقلیه خودران نیز حجم انبوهی از داده‌های غنی حسگرها شامل صوت و تصویر و داده‌های اختصاصی حسگرهای خودرو را تولید می‌کنند.دلیل اهمیت پروتکل های IoT چیست؟وجود پروتکل‌های iot نیز برای توانمندسازی ارتباط امن بین اجزای مختلف این سیستم استفاده می‌شود. در واقع ارتباط از طریق پروتکل‌های درون سیستم تضمین می‌کند که داده‌های ارسالی از یک نقطه به نقطه دیگر مانند سنسور‌ها دریافت شده و در مراحل بعدی نیز استفاده شوند. فارغ از اینکه مراحل بعدی آن داده، یک اپلیکیشن باشد یا یک دستگاه نقطه پایانی دیگر یا یک دروازه.پروتکل‌های اینترنت اشیا از اهمیت بالایی برخوردارند اما همه آن‌ها کارایی و عملکرد یکسانی ندارند. به‌عنوان مثال برخی از این پروتکل‌ها برای استفاده درون ساختمان مناسب هستند و برخی دیگر برای استقرار در بین ساختمان به خوبی کار می‌کنند. همچین نمونه‌های دیگری نیز وجود دارند که از آن‌ها برای استفاده از اینترنت‌ اشیا ملی یا جهانی مورد استفاده قرار می‌گیرند.آشنایی با مهم‌ترین پروتکل‌های اینترنت اشیا:هر کدام از پروتکل‌های اینترنت اشیا قابلیت‌های منحصربه‌فردی دارند و نسبت به دیگری برای استقرار اینترنت ‌اشیا نسبت به دیگر ترجیح داده شوند. در واقع هر پروتکل iot می‌تواند ارتباط دستگاه به دستگاه، دستگاه به دروازه یا دستگاه به مرکز داده یا ترکیبی از این ارتباطات پیچیده را فعال نمایند.به همین خاطر برای استقرار اینترنت ‌اشیا به‌صورت بهینه، عواملی مانند موقعیت مکانی خاص، وجود موانع فیزیکی، هزینه‌ها، نیاز‌های مصرف انرژی و گزینه‌های قابل کارکرد نیز اهمیت ویژه‌ای پیدا می‌کنند. در ادامه با انواع پروتکل‌های اینترنت اشیا آشنا می‌شویم:- MQTT – Message Queue Telemetry Transport Protocol- AMQP – Advanced Message Queuing Protocol-CoAP – Constrained Application Protocol-DDS – Data Distribution Service-WIFI-Bluetooth-ZigBee 1- MQTT – Message Queue Telemetry Transport Protocol2-AMQP – Advanced Message Queuing ProtocolپروتکلMQTT توسط آی‌بی‌ام طراحی شد جزء مهم‌ترین پروتکل‌های اینترنت ‌اشیا محسوب می‌شود. این پروتکل که به ارتباط ماشین به ماشین معروف است به نوعی به ماشین‌های داخل سیستم اجازه می‌دهد که با یکدیگر به طور خودکار ارتباط برقرار کنند. پروتکل MQTT، پروتکل ساده‌ای است که داده‌ها را از سنسور‌ها دریافت می‌کند، تحویل دستگاه‌های پردازشگر می‌دهد و سپس نتیجه را به سمت شبکه منتقل می‌کند.مدل پروتکل MQTT بر پایه مدل اشتراک، انتشار و کارگزار است. به این معنی که این پروتکل وظیفه جمع‌آوری اطلاعات و ارسال آن‌ها را به کاربران از طریقه لایه میانجی یعنی کارگزار برعهده دارد. همچنین پروتکل MQTT وظیفه دارد تا با بررسی متقابل تأیید ناشران و مشترکان امنیت شبکه را تضمین کند. نکته قابل توجه این است که این پروتکل روی پروتکل TCP/IP قادر به فعالیت است و نمی‌تواند برای تمامی اپلیکیشن‌های اینترنت‌ اشیا مورد استفاده قرار گیرد.از پروتکلAMQP برای محیط‌های مبتنی بر پیام استفاده می‌شود. این پروتکل برمبنای رویکرد صف‌بندی کار می‌کند و وظیفه ارسال پیام‌ها را به شکل مطمئن و ایمن برعهده دارد و اطلاعات را با ضریب اطیمنان بسیار بالا به مقصد ارسال می‌کند.3-CoAP – Constrained Application Protocolپروتکل CoAP یکی از کاربردی‌ترین پروتکل‌های اینترنت ‌اشیا است که در تعدادی از گجت‌ها مورد استفاده قرار می‌گیرد. زمانی که این پروتکل طراحی شد از آن برای ارتباطات ماشین به ماشین استفاده و به عنوان پروتکل جایگزین HTTP انتخاب شد.این پروتکل تکنیکی مؤثر برای ارسال و دریافت اطلاعات بر مبنای قالب‌بندی XML ارائه می‌کند. همچنین از چهار پیام non-confirmable، confirmable، reset و acknowledgment که به اختصار به آن (ack) استفاده می‌کند.در تکنولوژی اینترنت ‌اشیا پروتکل CoAP بسیار کاربرد دارد؛ زیرا این پروتکل امکان ارتباط‌ امن با قابلیت اطمینان بالا روی UDP را فراهم می‌کند. همچنین این امکان را دارد تا پیام ACK را به عنوان پاسخی استفاده کند تا گیرنده متوجه شود که پیامش به مقصد رسیده یا خیر.4-DDS- Data-Distribution Serviceپروتکل‌های اینترنت ‌اشیا انواع مختلفی دارند که هر کدام برای یک سیستم کاربرد دارد. پروتکل DDS که به سرویس توضیع داده‌ها مشهور است، براساس روش انتشار و اشتراک داده توسعه داده شده است.مهم‌ترین کاربرد اینترنت ‌اشیا با استفاده از این پروتکل خودش را نشان می‌دهد. استفاده از این پروتکل برای ارتباط سریع ماشین به ماشین است. در واقع پروتکل DDS به راحتی داده‌های مقایس‌پذیر، قابل اعتماد و با کارایی بالا را بین دستگاه‌هایی مانند سخت‌افزار‌ها و پلتفرم‌های نرم‌افزاری امکان‌پذیر کرده است؛ زیرا این پروتکل برای ارسال و دریافت اطلاعات از معماری بدون واسطه و چند بخش برای ارائه QoS با اطمینان و کیفیت بالا استفاده می‌کند.5-پروتکل وای فای (WiFi)امروزه وای فای (WIFI) یکی از جدیدترین و پرکاربردترین پروتکل‌های اینترنت ‌اشیا محسوب می‌شود. ایجاد چنین پروتکلی نیازمند دستگاه‌هایی هستند که بتوانند سیگنال‌های وایرلس را ارسال و دریافت کنند. دستگاه‌هایی مانند روتر، تلفن و لپ تاپ یا کامپیوتر.برای مصارف خانگی معمولاً از روتر برای متصل شدن به اینترنت و انتقال اطلاعات به یک شبکه خانگی یا اداری استفاده می‌شود. در این شرایط دستگاه‌های نزدیک به هم که در یک محدوده خاصی قرار دارند به وسیله پروتکل وای فای به یکدیگر وصل می‌شوند.به‌غیر از این روش یکی دیگر از راه های استفاده از پروتکل وای فای ساخت یک Hotspot وای فای یا نقطه اتصال است؛ به این معنی که یک کامپیوتر یا موبایل هوشمند سینگال را در محیط پخش می‌کند تا یک اتصال بی‌سیم یا بی سیم را با دیگر دستگاه ها به اشتراک بگذارند.6-پروتکل بلوتوث (Bluetooth)بلوتوث یکی از شناخته شده ترین انواع پروتکل های اینترنت اشیا است. این پروتکل به دستگاه‌های مختلف امکان ارسال و دریافت متن، عکس یا هر اطلاعات دیگری را می‌دهد. پروتکل بلوتوث شامل سه کلاس توان انتقال در فضا باز است. در واقع تکنولوژی بلوتوث یک استاندارد باز است که برای موارد با برد کوتاه با محدوده 1، 10 و 100 متر در فضای باز کاربرد دارد.رایج‌ترین کلاس پروتکل بلوتوث مورد دوم یعنی 10 متر است. این کلاس به کاربران اجازه می‌دهد تا به دستگاه‌های یکدیگر در اتاق یا حتی طبقات مختلف متصل شود. این پروتکل برای ارسال و دریافت اطلاعات از امواج رادیویی استفاده می‌کند. در واقع دستگاه‌هایی با فرکانس 2.4 گیگاهرتز مانند آداپتور بلوتوث قابلیت این کار دارد که باید در دستگاه های مختلف وجود داشته باشد.7-پروتکل زیگبی (ZigBee)طرح اولیه ZigBee در سال ۹۸ میلادی ایجاد، در سال ۲۰۰۳ استاندارد‌سازی و در سال ۲۰۰۶ مورد بازبینی قرار گرفت. نام این پروتکل از نوعی رقص که زنبور‌ها در زمان بازگشت به خانه انجام می‌دهند، الهام گرفته شده است.این پروتکل بر اساس استاندارد IEEE 802.15.4 ساخته شده که برای پروتکل‌های ارتباطی رده بالا می‌باشد. این سیستم از رادیو‌های دیجیتال کم مصرف و کوچک برای ساخت شبکه‌های بی‌سیم شخصی کمک می‌گیرد. از آن‌ها در دستگاه‌های پزشکی، اتوماسیون‌های خانگی و سایر نیاز‌هایی که دارای مقیاس و پهنای باند کم و همچنین ارتباط بی‌سیم هستند مورد استفاده قرار می‌گیرد.هدف اصلی پروتکل زیگبی ارزان‌تر و ساده‌تر بودن نسبت به شبکه‌های بی‌سیم دیگر مانند وای فای و بلوتوث است.سوالات متداول:انواع پروتکل های اینترنت اشیا را نام ببرید؟پروتکل MQTT، AMQP، CoAP جزء مهم‌ترین پروتکل‌های IOT به حساب می‌آیند.پرکاربردترین پروتکل های اینترنت اشیا در ایران را معرفی کنید؟پروتکل WIFI یکی از پرکاربردترین پروتکل‌های IOT است که در هوشمندسازی منزل نیز کاربرد دارد.استاندارد ها و پروتکل های اینترنت اشیاءپروتکل‌های اینترنت اشیا بخشی جدایی ناپذیر از معماری آن هستند. بدون پروتکل‌ها و استانداردهای اینترنت اشیا، سخت افزار بی فایده تلقی می‌شود زیرا به دلیل وجد آن‌ها، تبادل داده توسط سخت افزار امکان‌پذیر می‌گردد و از بین این داده‌های منتقل شده، اطلاعات مفید می‌تواند توسط کاربر نهایی استخراج شود.در اینترنت اشیا، پروتکل‌ها به دو دسته ارتباطی و داده‌های تقسیم می‌شوند.پروتکل های ارتباطیهر شبکه یا بستر ارتباطی اینترنت اشیا نیاز به پروتکل یا پروتکل‌های خاص خود را دارد و با استفاده از آن‌ها می‌توان انتقال داده را انجام داد.پروتکل های داده ای اینترنت اشیا (IoT )ما باید داده ها را بین دستگاه های خود و سیستم های دیگر مانند پلت فرم IoTانتقال دهیم. برخی از دستگاه ها دارای سنسورهایی هستند که داده ها را با فاصله زمانی منظم فشار می دهند. سنسورهای دیگر با یک مدل کشش در جایی که شما باید اطلاعات را درخواست کنید کار می کنند. چندین پروتکل داده وجود دارد که می توانیم در IoT استفاده کنیم.برخی از کاربرد های اینترنت اشیاء:شهرهای هوشمند مبتنی بر اینترنت اشیااستفاده از فناوری‌های نوین در شهرها، به‌منظور بهینه‌سازی کاربرد زیرساخت‏های فیزیکی شهرها (مانند شبکه‏ های جاده‌ای، شبکه قدرت و غیره) و ارتقاء کیفیت زندگی شهروندان می‌باشد. فناوری اینترنت اشیاء می‌تواند کاربردهای متنوعی در حوزه شهرهای هوشمند بیابد. به‌عنوان یک مطالعه موردی، این فناوری می‌تواند سیستم ‏های پیشرفته کنترل ترافیک را فراهم آورد. از طریق هوشمندسازها می‌توان ترافیک در شهرهای بزرگ و بزرگراه‏ ها را پایش و با استقرار سرویس‌هایی که توصیه‏ های مسیریابی ترافیک را ارائه می‌دهد از ازدحام جلوگیری کرد. در این دیدگاه، اتومبیل‌ها «ابزاری هوشمند» به‌حساب می‌آیند. علاوه بر این، سیستم هوشمند پارکینگ، بر اساس فناوری سنسور و RFID، فضای پارکینگ در دسترس را پایش می‌کند و توصیه‏ هایی برای پارکینگ خودکار به رانندگان ارائه می‌دهد، درنتیجه باعث بهبود تحرک در مناطق شهری می‏شود. در این فناوری حسگرها قادرند جریان ترافیک وسایط نقلیه در بزرگراه ‏ها و بازیابی اطلاعات انبوه مانند سرعت متوسط و تعداد اتومبیل‌ها را پایش نمایند. این حسگرها همچنین می‌توانند سطح آلودگی هوا و گازهای شیمیایی موجود در آن مانند سطح دی‌اکسید کربن،PM10، و غیره را شناسایی و این اطلاعات را به سازمان‌های بهداشتی ارائه دهند. علاوه بر این، می‌توانند در تشخیص تخلفات و انتقال داده ‏های مربوط به سازمان‌های اجرای قانون به‌منظور شناسایی متخلفین و یا برای ذخیره اطلاعاتی که از تجزیه‌وتحلیل صحنه تصادف فراهم‌شده است، به کار روند.-زنجیره تامین مبتنی بر اینترنت اشیابا ایجاد ارتباط بین اقلام با فناوری اطلاعات از طریق دستگاه‏های هوشمند تعبیه‌شده و یا از طریق استفاده از شناسه ‏های منحصربه‌فرد و داده ‏های حامل که می‌توانند ارتباط هوشمند با حمایت از زیرساخت‏ های شبکه و سیستم‏های اطلاعاتی برقرار کنند، کل فرآیندهای تولید را می‌توان بهینه‌سازی کرد و کل چرخه حیات محصول را می‌توان از تولید به مصرف کنترل نمود. با برچسب اقلام و محتواها، اطلاعات بیشتری در مورد وضعیت کارگاه، محل وضعیت ماشین‌آلات تولید می‌توان به دست آورد. اطلاعات مفید برچسب‌ها به‌عنوان داده ‏های ورودی می‌تواند برای تولید برنامه تصفیه‌شده و بهبود تدارکات عمل کند. خودسازمان‌دهی و راه‌حل‌های هوشمند تولید می‌تواند در کنار آیتم‌های طراحی شناسایی شود. اطلاعات متصل شده به یک شی و ریز پردازش از تولید تا پایان چرخه حیات ممکن است جدایی‌ناپذیر باشد، تاریخ تولید یک شیء و وضعیت فعلی آن می‌تواند تحت نظارت مداوم باشد و یا بر روی برچسب ذخیره شود و یا در داخل سیستم اطلاعات قرار بگیرد. اطلاعات نشان‌دهنده سابقه استفاده از یک محصول, که شامل اطلاعات ارزشمندی برای طراحی محصول، بازاریابی و طراحی خدمات مربوط به محصول است  و همچنین باعث تصمیم‌گیری نهایی برای بازیافت، تولید دوباره یا دفع محصول به‌طور ایمن و سازگار با محیط‌زیست می‏شود.مدیریت اطلاعات:اینترنت اشیاء با هوشمندسازی کالاها این امکان را برای مشتریان فراهم می‌آورد تا اطلاعات کامل کالا را از مواد خام تا تولید از طریق اینترنت در اختیار داشته و برای تصمیم‌گیری خرید از آن‌ها استفاده نماید. این اطلاعات می‌تواند شامل اطلاعات مواد تشکیل‌دهنده، اطلاعات فرایند تولید، اطلاعات مربوط به شرکت تولیدکننده، اطلاعات توزیع‌کنندگان، ضمانت کالا و یا سایر اطلاعات موردنیاز مشتری باشد.پیگیری و ردیابی سفارشات :اینترنت اشیاء با کدگذاری هر سفارش و تعبیه اطلاعات موردنیاز در آن، این حوزه از تجارت الکترونیک را پوشش‌  داده است. اطلاعات تعبیه‌شده در سفارشات، با استفاده از تکنولوژی شناسایی امواج رادیویی در هر نقطه از فرایند تولید تا تحویل خوانده‌شده و به سیستم متمرکز جمع‌آوری داده‏ها ارسال می‌گردد. بنابراین، مشتریان قادرند سفارشات خود را در زمان واقعی ردیابی کرده، و از سرنوشت سفارش خود باخبر شوند.حمل‌ونقل و جابه‌جایی کالا:از مهم‌ترین بخش‌های تجارت الکترونیک، حمل‌ونقل و جابه‌جایی کالا می‌باشد. این بخش را می‌توان به شکلی مدیریت نمود که جابجایی‌ها به‌طور کامل و دقیق قابل‌رؤیت باشد. با هوشمندسازی کالاها و تجهیز وسایل نقلیه به سیستم‏های موقعیت‌یاب جهانی، فناوری اینترنت اشیاء قادر خواهد بود مقدار کالای در حال حمل و نیز مبدأ و مقصد سفارش را مشخص نماید.تحلیل و پیش‌بینی بازارهای رقابتی:با اجرای فناوری اینترنتی از اشیاء، شرکت‏ها قادرند به‌تمامی محصولات خود به‌صورت آنلاین نظارت داشته و اطلاعات کاملی نسبت به فرایندهای طی شده توسط کالا گردآوری نمایند. باوجود یک پایگاه اطلاعات قوی و یکپارچه، آن‌ها نه‌تنها برگردش اطلاعات در فرایندهای تجاری و اشتراک‌گذاری اطلاعات میان طرف‌های معامله  اشراف دارند، بلکه قادرند این داده‏های تجاری را به‌صورت دقیق و درلحظه مورد تجزیه و تحلیل قرار دهند. شرکت‏ها همچنین از این طریق می‌توانند بازارهای رقابتی خود را مورد تحلیل قرار داده و روند تجاری آینده خود را برای تصاحب سهم بازار از تولیداتشان به بهترین نحو پیش‌بینی نمایند، در حقیقت این امر می‌تواند توانایی شرکت‏ها را در پاسخ به بازار بهبود بخشد.اتوماسیون تولید:از مهم‌ترین کاربردهای فناوری اینترنتی از اشیاء در بخش تولید، فعال‌سازی سیستم اتوماسیون می‌باشد که در آن شناسایی و ردیابی مواد و محصولات امکان‌پذیر می‌گردد. درنتیجه این قابلیت هزینه اشتباهات نیروی انسانی تا حد قابل‌توجهی کاهش خواهد یافت. با هوشمند سازی کالاها در بخش تولید، علاوه بر شناسایی و ردیابی دقیق مواد اولیه و قطعات یدکی در طول فرایند تولید، میزان ضایعات و خرابی‌ها نیز به‌صورت دقیق قابل‌سنجش می‌باشد. این قابلیت امکان شناخت گلوگاه‏ها و نقاط ضعف در تجارت الکترونیک را برای مدیران فراهم می‌آورد.-فناوری پزشکی، بهداشت و درمان مبتنی بر اینترنت اشیاتکنولوژی IOT کاربرد بسیار زیادی در برنامه‏ های مهم در بخش بهداشت و درمان را خواهد داشت به طوری که امکان استفاده از تلفن همراه باقابلیت حسگر RFID به‌عنوان یک پلت فرم برای نظارت بر پارامترهای پزشک و تحویل دارو مورداستفاده قرار می‌گیرد. در این حوزه مزایای بسیاری در پیشگیری و نظارت آسان دیده می‏شود و بنابراین تأثیر اساسی در نظام اجتماعی ما دارد و در مرحله دوم در صورت بروز حوادث و نیاز برای تشخیص به کار برده شود.دستگاه‏های شناسایی بی‌سیم می‌تواند منجر به ذخیره پرونده سلامت و رکوردها مورداستفاده قرار گیرد که می‌تواند زندگی بیمار را در شرایط اضطراری نجات دهد به‌ویژه برای افراد با بیماری‌های خاص(مثل سرطان, دیابت،،  آلزایمر و غیره ) و همچنین دستگاه‏های پیچیده پزشکی مانند ضربان‌ساز قلب، استنت، تعویض مفصل و پیوند عضو ممکن است به‌طور خودکار قادر به برقراری ارتباط با خود بیمار باشند.از اشیایی که در داخل بدن انسان استفاده شده است انتظار می‌رود که بتوانند شبکه ‏هایی در بدن تشکیل دهند و آن‌ها را با درمان پزشکان، خدمات اورژانس، برقراری ارتباط و مراقبت از افراد مسن هماهنگ کنند. به‌عنوان‌مثال دستگاه نشان دادن وضعیت فعلی داخلی بدن به‌صورت کاملاً خودکار و وسیلهٔ اندازه‌گیری سایز قلب انسان ساخته‌شده است ودرزمانی که نیاز به شوک با دستگاه شوک برقی باشد می‌تواند به‌صورت خودکار تصمیم‌گیری کند و همچنین یک پزشک می‌تواند وضعیت بیمار خود را پیگیری و پایش کند.برخی از مزایای استفاده از IoT:- کاهش مراجعه به بیمارستان و هزینه های بستری افزایش استقلال بیماران -ردیابی تجهیزات بیمارستانی- اعمال کنترل و نظارت بر فرایندهای درمانی و مراقبتی -افزایش ایمنی و امنیت مراکز بیمارستانیداروبرای جلوگیری از به خطر انداختن سلامت بیماران ایمنی و امنیت محصولات دارویی از اهمیت زیادی برخوردار است. به‌عنوان‌مثال اقلامی که نیاز به شرایط نگهداری خاص دارند، مثل نگهداری از یک زنجیره دارویی در شرایط خنک، اگر شرایط در طول حمل‌ونقل این داروها نقض شد این داروها  طی یک فرآیند بررسی شده و در صورت لزوم دور انداخته شوند. ردیابی داروها و تاریخچه الکترونیکی برای تشخیص محصولات تقلبی , حفظ زنجیره تأمین به صورت رایگان از تقلب را امکان‌پذیر می‌کند.برچسب‌های هوشمند در داروها نیز می‌تواند به‌طور مستقیم به نفع بیماران باشد، به‌عنوان‌مثال ذخیره‌سازی بسته‌بندی، اطلاع‌رسانی دوز مصرفی،  تاریخ انقضاء و اطمینان از اصالت داروها نمونه ای از آنها می باشد. یک کابینه  درمان هوشمند که اطلاعات منتقل‌شده توسط برچسب دارو را می‌خواند، می‌تواند بیماران را با یادآوری درمانشان در فواصل زمانی مناسب کنترل کند.زندگی مستقل (سلامتی و نظارت برافزایش سن جمعیت)برنامه‏ های کاربردی و خدماتی IoT که با استفاده از سنسورهای پوششی و محاصره‌شده قادر به  تشخیص فعالیت‌های زندگی روزمره افراد هستند, تأثیر زیادی در زندگی مستقل افراد دارند و به‌عنوان پشتیبانی, برای افزایش سن جمعیت می‌باشند. نظارت بر تعاملات اجتماعی با استفاده از سنسورهای پوششی و محدود، نظارت بر بیماری‌های مزمن با استفاده از سنسورهای پوششی امکان پذیر می باشد.پایان</description>
                <category>شبنم مرادی</category>
                <author>شبنم مرادی</author>
                <pubDate>Tue, 05 Mar 2024 16:04:03 +0330</pubDate>
            </item>
                    <item>
                <title>مباحث ویژه</title>
                <link>https://virgool.io/@m_79684831/%D9%85%D8%A8%D8%A7%D8%AD%D8%AB-%D9%88%DB%8C%DA%98%D9%87-ddi4z7d5mm5a</link>
                <description>گردآورنده :مهندس شبنم مرادیایمیل:shbnmmoradi@gmaile.comاصول و طراحی کامپایلر هادرحالت کلی سه نوع زبان داریم :1. زبان ماشین2. زبان اسمبلی3. زبان سطح بالااسمبلی : خطای کم / اگه خطا باشه برمیگرده پیدا میکنه مجددا جدا میکنه .سطح بالا: یا کل برنامه رو اجرا میکنه و از خطا چشم پوشی میکنه یا باید کاملا اصلاح شود.نکته مهم : زبان های برنامه نویسی انواع مختلفی دارد :1. زبان ماشین که در آن داده ها و دستورالعمل به صورت کدهای باینری 01 نمایش داده میشود . تنها زبانی است که کامپیوتر آن را درک میکند هربرنامه باید قبل از اجرا ب زبان ماشین ترجمه شود. هرنوع کامپیوتر زبان مخصوص به خود را دارد . برنامه نویسی به زبان ماشین بسیار مشکل است .2.زبان اسمبلی به جای کد های باینری از کلمات اختصاری استفتده میکند.خوانایی برنامه ها به زبان اسمبلی بیشتر از زبان ماشین است.برای تبدیل زبان اسمبلی به زبان ماشین از نرم افزار مترجمی اسمبلر استفاده میشود.3. زبان های سطح بالا به زبان محاوره ای نزدیک تر است. و دارای ساختار و دستورات بیشتر و قدرتمند نسبت به زبان اسمبلی هستند. برنامه های نوشته شده با این زبان مستقیم قابل اجرا روی ماشین نیستند و توسط کامپایلر ها به زبان ماشین نیستند و توسط کامپیلر ها به زبان ماشین ترجمه میشوند.تفاوت اسمبلر و کامپایلر : اسمبلر هر دستور را فقط یک دستور زبان ماشین ترجمه میکند.درحالی که کامپایلر هر دستور زبان سطح بالا به چندین دستور زبان ماشین ترجمه میکند. رابطه دستورات زبان سطح بالا به زبان ماشین یک به یک .روش های ترجمه و اجرای زبان سطح بالا:1- مفسر ها2-کامپایلرهامزایای مفسرها: سهلوت در اشکال -قابلیت انعطاف بالا- پیاده سازی آسان- قابلیت حمل بالا.مزایای کامپایلرها: سرعت اجرای بالا- جرای مستقل برنامه از کامپایلرها- حفاظت از کد منبع- عدم تکرار از کامپایلر.معایب مفسر ها: تکرار تغییر- سرعت اجرای پایین- نیاز به مفسر.معایب کامپایلر ها: زمان بر بودن اشکال زدایی- قابلیت حمل بالا- عدم سهولت پیاده سازی-استفاده ازمفسر : در این روش استفاده از دستورالعمل های برنامه یک به یک توسط نرم افزاری به نام مفسر خوانده و اجرا میگردد.در این روش برنامه مبدا به زبان ماشین ترجمه نمیشود. در نتیجه فایل جداگانه تولید نمیگردند.پایانخطااجرای     دستور العملواکشی     دستورالعملبرنامه     مبداعملکرد مفسربرنامه     مبدااستفاده از کامپایلر: کامپایلر نرم افزاری است که برنامه نوشته شده به زبان مبدا را به برنامه در زبان مقصد ترجمه میکند. در روش استفاده از کامپایلر ابتدا برنامه مبدا به زبان ماشین تبدیل سپس این برنامه روی کامپیوتر اجرا میشود .گزارش خطاعملکرد     کامپایلربرنامه     مقصدکامپایلرسه فاز تحلیل در کامپایلر:1- تحلیل گر لغوی- 2 تحلیل گر نحوی-3 تحلیلگر معنایی-تحلیل گر لغوی : بخشی از کامپایلر است که مستقیما به برنامه مبدا دسترسی دارد. تحلیل گر لغوی برنامه مبدا را به صورت جریانی از کاراکتر ها دریافت کرده .لغات تشکیل دهنده برنامه و نوع آنها را تشخیص داده و آن را برای تحلیل گر نحوی ارسال میکند.مثال: K:H+12*B;K شناسه: کاراکترH شناسه+ عملگر12 شناسه عددی* عملگرB شناسه; کاراکترتحلیل گر نحوی : وظیفه تحلیل گر نحوی برسی سخت و درستی ترتیب لغات برنامه مبدا است.برسی ساختار برنامه مبدا از وظایف تحلیل گر نحوی است. تحلیل گر نحوی خروجی تحلیل گر نحوی خروجی تحلیل گر لغوی دریافت کرده و اگر ترتیب لغات برنامه مبدا صحیح باشد از آن یک ساختار درختی تولید میکند.این درخت نشان دهنده ساختار برنامه مبدا است که اصطلاحا به آن درخت تجزیه میگویند.تحلیل گر معنایی : مواردی که در مراحل قبل مورد برسی قرار گرفته است در تحلیل گر معنایی برسی میشود؛ تحلیل گر معنایی معنا دار بودن عباراتی که از نظر نحوی درست بودن را مورد برسی قرار میدهد. تحلیل گر معنایی وظیفه تشخیص خطاهای معنایی ، جمع آوری اطلاعات برای مرحله بعد کامپایلر و عمال برخی تغییرات برای اصلاح برخی موارد را بر عهده دارد.مواردی که توسط تحلیل گر معنایی برسی میشود شامل :1 - برسی هماهنگی پارامتر ها2 - برسی و کنترل نوع3- تبدیل نوع4 - برسی و تغییر دوباره متغییرفاز های کامپایلر :تحلیل گر لغویتحلیل گر نحویتحلیل گرتحلیل گر معناییخروجیتحلیل گر نحویتحلیل گر     نحویK:H+12*B:ID1:ID2+12*B;تحلیل گر     معناییبهینه سازی     کد میانیتولید     کننده کد میانیتولید     کننده کدID312*ID:2+ID1:=تولید کننده کد میانی: از خروجی تحلیل گر معنایی ، کد میانی تولید میکند. کد میانی زبان ماشین منطقی و مجاز میباشد،به همین جهت هر کامپایلر میتواند کد میانی مخصوص به خود را تعریف کند.2 خواص تولید کننده کد میانی: 1سهولت تولید کد:زبان ماشین منطقی تا حد امکان باید ساده در نظر گرفته شود تا تولید کد برای آن آسان شود.بهینه ساز کد میانی : وظیه برسی کد میانی را برعهده دارد، تا در صورت امکان آن را بهینه سازی کند. بهینه سازی ینی اعمال تغییراتی در برنامه که بدون تغییر عملکرد برنامه مصرف حافظه کاهش و اجرای برنامه افزایش یابد.تولید کد : بخش تولید کننده کد؛ کد میانی بهینه سازی شده را به زبان اسمبلی ترجمه میکند.زبان پیاده سازی کامپایلر:راه حل این مشکل استفاده از زبان میانی هستند.در ابتدا     برنامه مبدا به زبان میانی ترجمه شده سپس از زبان میانی به زبان مقصد ترجمه     میشود.کد نهایی ماشین2کد نهایی     ماشین 2کد نهایی     ماشین KNکامپایلرکامپایلر2کامپایلر1NK...زبان 1Nزبانزبان 2زبان 3کامپایلر برنامه ای است که برنامه زبان مبدا را به برنامه معادل زبان مقصد ترجمه میکند کامپایلر یک برنامه است که به زبان برنامه سازی نوشته شده است زبانی که کامپایلر با آن نوشته میشود را زبان پیاده سازی مینامیم. برای تولید کامپایلر دوم نیازی به کامپایلر دیگری میباشد و این روند ادامه دارد. اگر N  تعداد زبان های برنامه سازی و K انواع مختلف کامپیوتر ها باشد N در K کامپایلر نیاز داریم.جلوبندی و عقب بندی کامپایلرجلوبندی: بخشی از کامپایلر که وظیفه ترجمه برنامه مبدا به زبان میانی را برعهده دارد، جلوبندی کامپیوتر گفته میشود.عقب بندی :بخشی از کامپایلر که وظیفه ترجمه برنامه زبان میانی را به زبان مقصد بر عهده دارد.عقب بندی کامپایلر میگوییم.برنامه      مبداکد میانیH + Kعقب بندیبرنامه      نهاییجلوبندیبا استفاده از این روش برای N زبان مبدا و K کامپیوتر به N لوبندی،وk عقب بندی نیاز داریم. که در مجموع به N+K برنامه احتیاج است.مزایای تقسیم کامپایلر به عقب بندی و جلو بندی : 1سادگی- 2 استقلال جلوبندی از زبان مقصد-3استقلال عقب بندی از زبان مبدا- 4 کاهش پیچیدگی- 5 افزایش قابلیت استفاده مجددا- 6 افزایش سرعت تولید کامپایلر-ساختار محیط برنامه نویسی : برای نوشتن برنامه به یک زبان خاص و تبدیل آن به برنامه اجرایی اجزای مختلفی در کنار کامپایلر قرار میگیرد که هر یک وظیفه ای را به عهده دارد .امروزه محیط برنامه نویسی تمام امکانات لازم برای نوشتن برنامه خطایابی و تایید کدنهایی را در اختیار برنامه نویسی قرار می دهد این گونه محیط هارا IDE می نامندبرنامه به     زبان ماشین جابه جا پذیربرنامه     مبدابرنامه به     زبان ماشین مطلقپیش     پردازشگرکامپایلراسمبلرویرایشگر     پیوندIDE: Iutegrated Developmeut Euviroumeبرنامه      اسمبلیپیش پردازنده:وظیقه انجام برخی تبدیلات اولیه را بر روی برنامه ورودی بر عهده دارد. در واقع پیش پردازنده یک کامپایلر سطح بالا است که برخی ترجمه ها را انجام میدهد . برنامه خروجی پیش پردازنده را به زبان اسمبلی ترجمه میکند این بخش بیشتر وظایف تبدیل برنامه مبدا به یک برنامه اجرایی را بر عهده دارد .اسمبلر : این بخش برنامه اسمبلی خروجی از بخش کامپایلر را به کد های باینری که قابل فهم برای کامپایلر باشد تبدیل میکند.ویرایشگر پیوند : این بخش انتقال برنامه اجرایی به حافظه به منظور اجرا را بر عهده دارد.ویژگی کامپایلر خوب:1 تولید کد صحیح2 پیروی از مشخصات زبان مبدا3 امکان پردازش برنامه های بزرگ4 سرعت کامپایلر5 اندازه کامپایلر6 پیغام های خطای کامپایلر7 قابلیت حمل8 بهینه سازیفصل دوم تحلیل گر لغوی :تحلیل گر لغوی تنها فازی است که با برنامه مبدا در ارتباط است. این فاز برنامه ورودی را برسی میکند،لغات برنامه مبدا و نوع آن را تشخیص داده و آن را برای تحلیل گر نحوی ارسال میکند.لغات موجود در برنامه مبدا به چند دسته تقسیم میشوند:1-کلمات کلیدیک لغاتی که در زبان مبدا معنی خاصی داشته باشند.  “ float-prgram-main”به این کلمات،کلمات رزرو شده مبهم میگویند.2-علایم: علامت هایی که به منظور نشانه گذاری خاصی در زبان مبدا بکار میرود : و {} ( )3-عملگر ها: علامت هایی که به منظور نشان دادن عملیات خاصی در زبان مبدا به کار میرود. + - ؟  *4-شناسه ها: نام هایی که جز کلمات کلیدی نبوده و توسط برنامه نویس به قطه کد اضافه میشود. نام کلاس – نام ارایه ها- نام متغییر ها5-ثوابت: هر مقدار عددی کاراکتر های رشته ای و منطقی به عنوان ثوابت در نظر گرفته میشود.6-توضیحات: قسمتی از برنامه مبدا که توسط کامپایلر در نظر گرفته نمیشود. توضیحات به منظور افزایش خوانایی برنامه می باشد و در عملگر برنامه هیچ تاثیری ندارد.7- فضای خالی: تاثیر فضای خالی در برنامه بستگی به زبان مبدا دارد. دربرخی زبان ها فضای خالی دارد به منظور خواناتر کردن برنامه و جدا کردن لغات از یک دیگر میباشد.مثال:لغتنوع لغتPROGRAMکلمات   کلیدیPR1شناسه;علایم{توضیحاتVARکلمات   کلیدیIشناسه:علایمIntgerکلمات   کلیدی;علایمProgram p1 ; {this is simple }Var I: integer ;J : real ;Str : string [20];Integer ;4 temp :خطاBeginJ : = 2.1 ;I : = 2*j ;نوع لغتلغتعلایم;کلمات کلیدیBeginشناسهJعلایم:علایم=ثوابت (اعشاری)2.1علایم;شناسهIعلایم:علایم=ثوابت (عددی)2عملگر*علایم;کلمات کلیدیedعلایم.شناسهStrعلایم:کلمات کلیدیStringعلایم[ثوابت20علایم]علایم;خطا4tempشناسه:کلمات کلیدیintgerعملگر تحلیل گر لغوی هنگام برخورد با یک خطای لغویتوقف: در این روش تحلبیل گر لغوی پس از کشف اولین خطا متوقف میشود برنامه نویس خطا را رفع و برنامه را کامپایل میکند. تحلیل گر لغوی برنامه را از ابتدا برسی میکند اگر به خطای دیگری برخورد کرد دوباره متوقف میشود.عیب این روش افزایش تعداد دفعات انجام کامپایل است.در نتیجه زمان تولید نرم افزار افزایش میابد.پوشش خطاتحلیل گر لغوی پس از کشف یک خطا متوقف نمیشود بلکه به کار خود ادامه میدهد. در این روش پس از کشف خطا تحلیل گر لغوی از خطا چشم پوشی کرده و به برسی بقیه برنامه ادامه میدهد. یکی از روش های پوشش خطا حذف کاراکتر های ورودی است.عملکرد تحلیل گر لغوی هنگام برخورد با یک خطای لغوی1 توقف : در این روش تحلیل گر لغوی پس از کشف اولین خطا متوقف میشود. برنامه نویس خطا را رفع و برنامه را کامپایل میکند. تحلیل گر لغوی برنامه را از ابتدا برسی میکند و اگر به خطای دیگری بر خورد کرد دوباره متوقف میشود. عیب این روش افزایش تعداد دفعات انجام کامپایل است. در نتیجه زمان تولید نرم افزار فزایش می یابد.2-پوشش خطا : تحلیل گر لغوی پس از کشف یک خطا متوقف نمیشود،بلکه به کار خود ادامه میدهد. در این روش پس از کشف خطا تحلیل گر لغوی از خطا چشم پوشی میکند و به برسی بقیه برنامه ادامه میدهد. یکی از روش های پوشش خطا حذف کاراکتر های ورودی است.نشانه: فاز بعد از تحلیل گر لغوی تحلطیل گر نحوی است که باید علاوه بر خود لغات نوع هر لغات را نیز در اختیار داشته باشد. به همین جهت لازم است هماهنگی بین تحلیل گر نحوی و تحلیل گر لغوی انجام شود،به این منظور از نشانه استفاده میشود.نشانه علامتی است که تحلیل گر لغوی و تحلیل گر نحوی برای مشخص کردن یک نوع خالص از لغات به یک دیگر توافق کرده اند.نحوه ارسال نشانه ها به دو روش قابل انجام است:1- استفاده از فایل واسط : در این روش تحلیل گر نحوی تمام فایل ورودی را خوانده و همه نشانه های لازم را تولید میکند.و در یک فایل واسط قرار میدهد.سپس تحلیل گر نحوی این فایل را می خواند:برنامه      ورودیتحلیل گر      لغویبرنامه      ورودیجریان      نشانه هافایل واسطتحلیل گر      نحویجریان      نشانه ها2-ارتباط مستقیم: در این روش تحلیل گر نحوی از تحلیل گر لغوی درخواست نشانه میکند و تحلیل گر لغوی جریان ورودی را برای یافتن لغات بعدی پویش کرده و پس از تشخیص لغت بعدی نشانه مربوط را به تحلیل گر نحوی باز میگرداند. این روش سریع تر از روش قبل است به همین جهت اغلب کامپایلر ها از این روش استفاده میکنند.نشانهدرخواست نشانه بعدیتحلیل گر     نحویتحلیل گر     لغویبرنامه     ورودیجدول نماد: تحلیل گر لغوی لغات تشخیص داده شده را درون ساختاری به نام جدول نماد ذخیره میکند. و آن را برای تحلیل گر نحوی ارسال میکند. جدول نماد برای هر شناسه یک رکورد در نظر میگیرد.برخی از انواع نام ها و صفات که در جدول نماد ثبت میگردد: 1.متغیر ها: نام هایی که برای نگه داری اطلاعات به کار میرود. 2.نام زیر برنامه ها : هر زیر برنامه دارای نام است که باید به همراه مشخصات آن در جدول داده ثبت گردد.3.آرایه ها: نوع،اندازه،و ابعاد آرایه در جدول نماد ثبت میشود.4.برچسب ها: آدرس برچسب ها در جدول نماد ثبت میشود.پیاه سازی جدول نماد از دو روش لیست پیوندی و جدول درهم ساز استفاده میشود.1-الفبای زبان: به مجموعه نامتناهی و متناهی از نماد های ساده و غیر ساده و غیر قابل تجزیه را الفبای زبان میگویند و با نماد                     &quot; نشان میدهند.2- رشته : یک دنبالی متناهی از الفبا را رشته میگویند،تهی نیز یک رشته حساب میشود و نماد آن    &quot; به این مانند است.3-طول رشته: تعداد نماد های به کار رفته در رشته را ول رشته می نامیم.4- زبان: مجموعه ای رشته هارا زبان میگویند.اجتماع MUL : عملیات اجتماع : دو زبان M و L را به صورت MUL نشان میدهند. که عبارت است از مجموعه ای از رشته ها که در زبان L یا زبان M باشد.L ={ab;aab;aaab;aaaab]M ={12;21;32;23}LUM ={ab;aab;aaab;aaaab;12;21;32;23}MUL ={12;21;32;23;ab;aab;aaab;aaaab}عملیات الحاق : الحاق دو زبان L و M را به صورت M نشان میدهند. زبان L.M عبارت است از مجموعه ای از رشته ها که از ترکیب رشته ای در زبان L در رشته ای در زبان M به دست آمده باشد.L.M= { a12.a21.aa12.aa21.aaa12.aaa21}M.L= { 12a.12aa.12aaa.21a.21aa.21aaa}عملیات بستار L* : اگر L یک زبان باشد. بستار L به صورت L* نشان داده میشود. L* یعنی الحاق صفحه یا بیشتر L با خودش.L= {ab; 12}L1= { }L2=L1 0 L1 = {abab;ab12;12ab;1212]L1= {ab;12}L1= {ab; 12}L3= L2.L2انواع زبان ها :1 – زبان های با قاعده2-زبان های مستقل از متن3-زبان های وابسته به متن4- زبان های قابل شمارش بازگشتیزبان های با قاعده: زبانی است که بتوان آن را توسط یک عبارت باقاعده توصیف کرد.عبارت های باقاعده:1 -تهی    &quot; یک عبارت با قاعده است.2-به ازای هر a عضو سیگما    &quot; باشد. R=a یک عبارت باقاعده است که زبان مجموعه a را مشخص میکند.3- اگر R=a یک عبارت با قاعده باشد،آنگاه R*  یک عبارت با قاعده است.4- اگر r1 و r2  با قاعده باشد، L(r2) و L(r1) به ترتیب زبان های تولید شده توسط r1 و r2 باشند، آنگاه r=r1.r2 عبارت با قاعده است. زبان L(r1) Ul (r2)تولید میکند.-5اگر r1 و r2  با قاعده باشد، L(r2) و L(r1) به ترتیب زبان های تولید شده توسط r1 و r2 باشند، آنگاه r=r1.r2 عبارت با قاعده است. زبان L(r1) . (r2)تولید میکند.ماشین خودکار متناهی : تشخیص دهنده یک ماشین متناهی که در یک رشته مانند  x را دریافت کرده و در صورتی کد رشته در x متعلق به زبان باشد جواب بله و در غیر این صورت جواب خیر میدهد.ماشین خودکار متناهی در زبان های با قاعده 2 نوع است :1- ماشین خودکار قطعی DFA2-ماشین خودکار غیر قطعی NFADFAQ= مجموعه ای متناهی از حالت ها است.مجموعه ای متناهی از نمادها که الفبای زبان است.&amp;:یک تابع گذر است که نشان میدهد از هر حالت    به چه حالتی میرسد.Q0: به عنوان حالت شروع در نظر گرفته میشود.F:به عنوان حالتی نهایی در نظر گرفته میشودbbمثال :aa312&amp;     ( 1, a )={2}&amp; ( 1, b )={1}&amp; ( 2, a )={3}&amp; ( 2, b)={2}123a23bQ={1,2,3}Q0= { 1 }F={ 3 }نکته: تفاوت بین DFA و NFADFA  یک خروجی میدهد.NFA چند خروجی میدهد.ماشین خودکار غیر قطعی NFADFAQ= مجموعه ای متناهی از حالت ها است.مجموعه ای متناهی از نمادها که الفبای زبان است.Q0: به عنوان حالت شروع در نظر گرفته میشود.F:به عنوان حالتی نهایی در نظر گرفته میشود&amp;:در این تابع به ازای هر حالت و هر یک از الفبا ممکن است چند حالت مجزا وجود داشته باشد.مثال :&amp; (1,b)={1,2}&amp; ( 2,b )={2}&amp; ( 2,a )={3}Q={1,2,3}Q0= { 1 }F={{332121,2b3aمثالbccda86789b6a77.8c8.9d9&amp; {6,a}&amp; ( 6,a )={7}&amp; ( 6,b )={6}&amp; ( 7,a )={8,7}&amp; ( &amp;,c )={9,8}&amp; ( 9,d )={9}Q={6,7,8,9}Q0= { 6 }F={9}a976برای تبدیل عبارات با قاعده به DFA دو روش وجود دارد:1-تبدیل عبارت با قاعده بهNFA وسپس تبدیل  NFAبه DFA-2تبدیل مستقیم عبارات با قاعده به DFANFADFAبرنامهعبارت با قاعدهایجاد NFA از عبارت با قاعده با روش تامپسون:1- عبارت با قاعده r را در نظر بگیرید.سپس rرا به نماد های اولیه تجزیه میکنیم.نماد های اولیه   عبارت با قاعدهعبارت های با قاعدهR2=br1=ar=a/bR4=aR3=cR2=bR1=aR(a)b*)(ca)*Fنکته:     حالت نهایی همیشه با دو حلقه نشان داده میشود.iاز شکستن عبارت با قاعده به عبارت با قاعده ای که فقط یک نماد دارند،برای هر یک از نمادها یک NFA می سازیم، برای ساخت این NFAیک حالت شروع به نام iو یک حالت نهایی به نام fایجاد میکنیم.بین این دو حالت یک برچسب نماد مورد نظر ایجاد میکنیم.R= a  startiFbR2= start-2اگر ( r ) N، NFA حاصل از عبارات با قاعده rباشد،آنگاه NFAحاصل از عبارت با قاعده rباشد، آنگاه  NFAاز r* را *(r) N مینامیم.1که به صورت زیر ساخته میشود:afiA*={ab,12}N(r)A  ={ }A1= AA2=a1.a1A3=a2.a2aبرای تبدیل عبارت با قاعده به DFA دو روش وجود دارد :1- تبدیل عبارت با قاعده NFA به DFA2- تبدیل مستقیم عبارت با قاعده به DFANFAعبارت با قاعدهبرنامهDFAایجاد NFA از عبارت با قاعده با روش تامپسون:1- عبارت با قاعده rرا در نظر بگیرید سپس  r را به نماد های اولیه تجزیه میکنیم .نماد های اولیه عبارت با قاعدهعبارت با قاعدهR2=bR1=aR=a/bR4=aR3=cR2=bR1=aR(a/b)*(ca)*پس از شکستن عبارت با قاعده به عبارات با قاعده ای که فقط یک نماد دارند ؛ برای هریک از نماد ها یک NFA میسازیم؛برای سخت این NFA یک حالت شروع به نام i و یک حالت نهایی به نام f ایجاد میکنیم.بین این دو حالت یک برچسب با نماد مورد نظر ایجاد میکنیم.afiR1=a startbfiR2=a startاگر N(r)،NFAحاصل از عبارت با قاعدهr باشد ،آنگاهNFA حاصل ازr* راN(r)* مینامیم که به صورت زیر ساخته میشود.مرحله 1aA*={ab,12}fiA0={}N(r)A1=a0.a1A2=a1.a1A3=a2.a2iaمرحله 2startN(r)مرحله 3fistartifمرحله  4astartاگر N(R2),(R1) و NFA های مرتبط با قاعده ی R1,R2 باشند،آنگاه NFA حاصل از R1/R2 را N(R1,R2) مینامیم.N(R1)iN(R2)startN(R1)iFN(R2)startN(R2)اگرNFA,N(r2),N(r1)های عبارت با قاعده ی  r1,r2باشند،انگاه  NFAحاصل از R1.R2 را N(R1.R2)مینامیم.حالت شروع N(R1) را حالت شروع N(R1.R2) را در نظرمیگیریم و حالت پایانN(R1)  را باحالت شروع N(R2) را در نظر میگیریم.(ab)*(a/b)cNFA عبارت زیر را بنویسید.مرحله یک1ifaR1=a startifbR2=b starifaR3=a startifbR4=a startifcR5=a  start(ab)مرحله دوم 2ifbaR2=bR1=astartمرحله سوم 3Ab)*)iabfR1=astartR2=baمرحله چهارم 4ia/bbfstartمرحله پنجم5afbai(ab)*(a/b)(ab)*startساخت مستقیم DFA از عبارت با قاعده :1- هر نماد یا تهی در عبارت با قائده ی r به برگ تبدیل میشود.2- عملگر الحاق به گره داخلی تبدیل میشود.درخت تجزیه : (r1.r2)R2R1*R1*R1R1R1R1R1R1R1R1R1R1/R2R2عبارت با قاعده r را به r# تبدیل میکنیم، پس از آن درخت تجزیه را برای عبارت #r رسم میکنیم.برای هر نماد عددی متناسب با مکان نماد اختصاص داده میشود،این عدد مکان نماد یا مکان برگ نامیده می‌شود.First pos(n) این تابع مجموعه مکان نماد هایی را بر می‌گرداند که منطبق بر اولین نماد رشته ی تولیدی از عبارت با قاعده باشد‌.(a|b)*=ab,abab,ababab,...*First pos.(ab)*={ab}12baFirst pos (ab)*={1,2(a|b)*CFirst pos (a|b)*C={a,b}R#.(a|b)*C# تبدیل هشتگLostpos(n): این تابع مجموعه نمادهایی را برمی‌گرداند که منطبق بر آخرین نماد رشته های تولیدی در عبارت با قاعده است.ab*=r#=ab*#ab*=ab,abb,abbb,...B1B2B3B4#Last pos = {3,4}C3R=(a/b).cLostpos(a/b).c={c}baLastpos{3}R1= Or-node  عبارت با قاعده ی سمت چپ و r2 عبارت با قائده ی سمت راست باشد Or-node  این دو عبارت حاصل اجتاعfirstpos ها و LOSTPOS های هر عبارت میباشد.R=R1/R2Firstpos(r)=firstpos(r1) U firstpos(r2)Lostpos(r)=lastpos(1) U Lastpos(r2)R1=ab*R2=(a/b).cFirstpos(r1)={1,2}Lastpos(r1)={3}tpos(r2)={1,2}Lastpos(r2)={3}Firstpos(r)={1,2} U {1,2} {1.2}Lastpos(r)={3} U {3} {3}کلمات کلیدیبر ای تشخیص کلمات کلیدی دو روش وجود دارد : ۱-باهر کلمه کلیدی به طور مستقل برخورد میکنیم برای هر کلمه کلیدی یک عبارت با قائده در نظر می‌گیریم سپس ب اژ آنDFA را بدست آورده و پیاده سازی می‌کنیم در این روش ابتدا نمادهاي ورودی با عبارت با قائده مربوط به کلمات کلیدی و سپس با عبارات با قائده مربوط به دیگر انواع لغات مقایسه میشود . ۲ - از آنجایی که کلمات کلیدی از لحاظ ساختار ، زيرمجموعه شناسه ها هستند ، می‌توان آنهارا مانند شناسه ها تشخیص داد . با این تفاوت که کلمات کلیدی در جدول نماد بعنوان مقدار اولیه ثبت می‌شوندو نشانه کلمات کلیدی نیز در جدول نماد ثبت می‌شود . تحلیل گر لغوی هربار که شناسه ای را تشخیص داد ، ابتدا جدول نماد راجست و جو میکند . اگر شناسه کلمه کلیدی باشد تحلیل گر لغوی با جستجو هر جدول نماد کلمه کلیدی را یافته و نشانه ثبت شده را به جدول نماد بر می‌گرداند .تولید خودکار تحلیل گر لغویبرای ساخت تحلیل گر لغوی روشهای مختلفی وجود دارد ، که عبارتنداز : الف - استفاده از زبان برنامه سازی : دراین روش با استفاده از یکی از زبانهای برنامه سازی تحلیلگر لغوی ساخته می‌شود . مزاياومعایب این ر‌وش : ۱- صرف زمان زیاد برای ساخت تحلیل گر لغوی . ۲- کاهش قابلیت استفاده مجدد . ۳ - افزایش امکانات . ۴ - افزایش قابلیت انعطاف پذیری . ب - استفاده از ابزارها : با ت‌توجه به اینکه اصول ساخت تحلیلگر لغوی برای کامپایلرها یکسان است در نتیجه ابزارهای ايجاد شده با أخذ مشخصات لغوی زبان مبدا می‌توانند تحلیلگر لغوی آن را تولید کنند . به این گونه نرم‌افزارها تولید کننده تحلیلگرلغوی گفته‌ می‌شود . مزایا و معایب این روش: ۱- افزایش سرعت ایجاد تغییرات -2کاهش زمان ساخت تحلیل گر لغویکاهش زمان ساخت تحلیل گر لغوی:یکی از مهم ترین ابزار های نرم افزاری Flexمیباشد. نکته feleشامل یک زبان برنامه نویسی خاص خود است،که برنامه را به زبانCیا پاسکال تبدیل می‌کند.پسوند این فایلL.میباشد. تحلیل گر نحوی علاوه بر برسی صحت ترتیب لغات برنامه مبدا، وطیفه ایجاد درخت تجزیه را بر عهده دارد. ورودی تحلیل گران نحوی دنباله ای ز نشانه ها است که توسط تحلیل گر لغوی تولید شده است،و خروجی تحلیل گر نحوی درخت تجزیه است که نشان دهنده ی ساختار برنامه مبدا استساختار نحوی زبان را به‌ روش‌های مختلفی می‌توان بیان کرد :یکی از روش‌های مهم بیان قوانین نحوی زبان مبدا استفاده از گرامرهای مستقل از متن است . مزایای استفاده از گرامر مستقل از متن : ۱- گرامرهای مستفل از متن قوانین نحوی زبان مبدا را کامل و دقیق ‌و قابل فهم توصیف می‌کند . ۲- با استفاده از گرامرهای مستقل متن می‌توان ابزارها یی ايجاد کرد که‌ گرامرهای مستقل از متن را دریافت کرده‌ و تحلیلگر نحوی آن‌را بصورت خودکار ايجاد کند . مدیریت‌ خطا خطاهای برنامه در سطوح مختلف رخ میدهد : ۱ - خطاهاي نحوی : خطاهاي که مربوط به ساختار هر لغت در برنامه مبدا میباشد .۲- وقتی دنباله ای از کاراکترها با هیچیک از عبارات با قائده منطبق نباشد ، این خطاها رخ می‌دهد.خطاهای لغوی خطاهای شامل:۱- استفاده از کارکترهای غیر مجاز temps ۲- تعریف نا درست نامها یا شناسه ها مانند 5temp۳- تعریف نادرست ثوابت مانند 12.654.765خطاهاي نحوی:پرانتزهای نا متعادل مانند A( (a+b*)استفاده نادرست از عملگرها if (a&gt;b&gt;c)then a:=2:خطاهای معنایی : ۱ - نوع دا ده ها۲ - جریان کنترل۳- کنترل یکتایینوع داده :اگر عملوند های یک عملگرناسازگار باشند مانندجمع یک آرایه و یک تابعجریان کنترل :مقصد دستورات کنترلی که کنترل ذا از محلی به محل دیگر منتقل میکنذ موجود نباشند.کنترل یکتایی : در برخی زبان ها یک متغییر فقط یک جا میتوتن تعریف گرددگرامر های مستقل از متن :ابزار مناسبی هستند جهت توصیف ساختار نحوی زبان های برنامه سازی را گرامرمیگوییم. گرامر مستقل از متن شامل مجموعه ای از قواعد تولید و یک نماد شروع است.هر قاعده تولید یک ساختار نحوی را تعریف میکند که دارای نام است.قاعده تولی دارای 2 قسمت است :بخش سمت چپ که نام ساختار است و بخش سمت راست تمام شکل های ساختار را نشان میدهند.بخش سمت راست داری 2 قسمت است:1- نماد های پایانه2- غیر پایانه هاپایانه ها :عملگراها و علاِم مانند + و - و * ارقام مانند 1و2و3a , b , c حروف کوچک ماندغیر پایانه ها:A,B حروف بطرگ مانندStart اسامی با حروف مانندنکته : برای نشان دادن دنباله ای از پایانه ها و غیر پایانه ها از حروف لاتین مانند الفا و بتا استفاده میشودمثالE____ E+T E-T TT____ T*F T/F FF___idغیر پایانه های این مثالF,T Eپایانه هاId, / , * , - , +درخت تجزیه :چگونگی تولید یک رشته از نماد شروع گرامر را بصورت بصری نشان میدهندگرامر :روش ساخت رشته هایی متشکل از نماد هاستگرامر 4گانه :S=(N,T,S,P) N=مجموعه غیر پایانه هاP  مجموعه قوانین تولید رشته = S= نماد شروعروابط زیر برای درخت تجزیه و گرامر مستقل از متن برقرار است :1 ریشه درخت متناظر با نماد شروع گرامر استاست E  برگ های درخت تجزیه پایانه گرامر یا    23 گره داخلی درخت تجزیه متناظر با یک غیر پایانه است4 اگر غیر پایانه ای متناظر با یک گره داخلی درخت تجزیه باشد 98و98 بر چسب های فرزندان این گره از چپ به راست باشد انگاه در گرامر قاعده تولیدی بصورت خواهد بودA1____X1,X2مثال : درخت تجزیه1+2با توجه به گرامر:E______E+T E-T TT _____ 1 2 3نکته : چون دو نماد شبیه به هم در درخت تجزیه نمیتواند پشت سر هم بیاید .E3T2T-EE12TT+TEمثال 2-3اشتقاق:فراید تولید یک رشته از نماد شروع را اشتقاق میگوییم (تولید یک رشته به وسیل گرامر مستقل از متن از نماد شروع اغاز میشود )انواع اشتقاق:اشتقاق از چپدر هر قدم انجام جایگزینی را روی سمت چپ ترین غیر پایانه ها انجام میدهیم .اشتقاق از راستدر هر قدم انجام جایگزینی را روی سمت راست ترین غیر پایانه ها انجام میدهیم.این رشته را با استفاده از گرامر:Id+id*idمثال =E____ E+E E*E EE ____ idاشتقاق راست به چپ ان را بنویسید .E____ E+E E*EE____ E+E id*idE____ id+id id*id E____ id+id*idاشتقاق چپE id+E/E*EE    id+id/E*EE    id+id*idگرامر های مبهم:گرامر هایی است ک بتوان برای رشته تولید شده از گرامر یک درخت تجزیه تولید کردروش های رفع ابهام :تقییر گرامر : هرکدام یک زبان را توصیف میکند برای تولید یک زبان میتوان از گرامر های متعددی استفاده کرد در نتیجه میتوان گرامر مبهم را تغییر داد تا زبان تولید شده مبهم نباشد .استفاده از قوانین جانبیدر این روش گرامر تقییر نمیدهیم اما قوانینی وضع میکنیم که موجب ان از چند درخت تجزیه فقط یک انتخاب شوداستفاده از قوانین خاص:با استفاده از این قوانین بین چند درخت تجزیه فقط یکی را انتخاب میکنیمانواع تجزیه کننده ها :تجزیه کننده های پایین به بالااین تجزیه کننده ها از برگ درخت ها شروع کرده و به ریشه ختم میشود .رسم کنید؟Postorder مثال:Postorder = 1.2.3.4.5.6.7.8.9تجزیه کننده های بالا و پایین: این تجزیه کننده ها از برگ درخت ها شروع کرده و به ریشه ختم میشوند.رسم کنید؟Postorder مثال:Postorder = 1.2.3.4.5.6.7.8.9تجزیه کننده پیشتگوی غیر بازگشتی :در این تجزیه کننده با استفاده از پشته و جدول تجزیه بدون فراخوانی بازگشتی توابع رشته ورودی پردازش میشود .تجزیه کننده عملگراولویت :این تجزیه کننده را میتوان بصورت دستی ایجاد کرد . این تجزیه کننده ضعیف است و بیشتر برای عبارات محاسباتی کاربرد دارد و از روابط عملگرها استفاده میکند:LRتجزیه کنندهرشته ورودی را از چپ به راست پویش و معکوس سمت راست ترین اشتقاق را ایجاد میکند پایانه رشته ورودی باید علامت خاصی داشته باشد تا تجزیه کننده ال ار با رسیدن به ان پایان رشته را تشخیص دهد.تجزیه کننده های پایین به بالا:این تجزیه کننده ها از برگ درخت ها شروع کرده و به ریشه ختم میشودتجزیه کننده پیش گونوع خاصی از تجزیه کننده بازگشتی است که در تجزیه کننده بازگشتی اجزای توابع بازگشتی ورودی را پردازش میکنند تجزیه کننده بازگشتی از روش سعی و خطا برای پردازش ورودی استفاده میکند یعنی تابعی برای پردازش ورودی فراخوانی میشود اگر پردازش ورودی شکست خورد به عقب بازگشتهو تابع دیگری را فراخوان میکند این روش بسیار کند و زمان بر است در تجزیه کننده ی پیشتگو با توجه به نماد بعدی تابعی ک باید اجرا شود دقیقا مشخص میگردد به همین جهت سریع تر از روش قبلی میباشدپایان</description>
                <category>شبنم مرادی</category>
                <author>شبنم مرادی</author>
                <pubDate>Mon, 04 Mar 2024 21:19:29 +0330</pubDate>
            </item>
            </channel>
</rss>