موضوع مقاله: پروگراف | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # پروگراف | مقدمه: پروگراف یک زبان برنامه‌نویسی تصویری، شی گرا، جریان داده (چند شیوه‌ای) است و به عنوان موفق‌ترین (از لحاظ تجاری) زبان تصویری که چند هدف را دنبال می‌کند، شناخته شده‌است. | ## بخش 1: پروگراف | این موفقیت تجاری به این دلیل است که پروگراف برنامه‌نویس را از کارهای خسته‌کننده و جزئیات غیرضروری زبان‌های رایج آزاد کرده‌است. پروگراف از علامت‌های آیکونی برای نشان دادن عملیاتی که باید روی داده انجام شود، استفاده می‌کند. پشتیبانی از زبان پروگراف در سیستم عامل‌های مک اخیراً با انتشار نرم‌افزار محیط توسعه Marten ممکن شده‌ است. تاریخچه تحقیق دربارهٔ پروگراف در سال ۱۹۸۲ در دانشگاه Acadia به عنوان یک تحقیق کلی دربارهٔ زبانهای جریان داده آغاز شد. نمودارهایی که برای روشن‌تر شدن مباحث استفاده می‌شدند منجر به ایجاد این بینش شد که "وقتی نمودارها از کدها واضح ترند چرا نمودارها را قابل محاسبه نکنیم؟" بنابراین پروگراف (برنامه‌نویسی به صورت نموداری) به عنوان یکزبان تصویری جریان داده متولد شد. در سال ۱۹۸۵کار روی الگوهای تجاری اولیه برای مکینتاش - تنها کامپیوتر موجود در آن زمان که ارزان و به‌طور گسترده در دسترس بود و از گرافیک سطح بالا پشتیبانی می‌کرد. این نسخه برای ساخت برنامه‌های کاربردی کاملاً چند سکویی در نظر گرفته شده بود و در سال ۱۹۹۳ منتشر و بلافاصله توسعه یک چارچوب برنامه کاربردی مدل کارخواه کارساز از آن منتج شد. اواخر سال ۱۹۹۴ برای تأمین مالی تلاشهایی ناموفق اوایل ۱۹۹۵ شرکت به امانت (امانت دادگاهی) رفت.پس از به امانت رفتن شرکت مدیران و کارمندان PI یک شرکت جدید به نام Pictorius تشکیل دادند که بدهی‌های PI را تأمین کرد. بعد از تغییر مدیریت در شرکت جدید تأکید از توسعه ابزار به توسعه نرم‌افزار کاربردی وب و برنامه‌نویسی سفارشی منتقل شد. شرح زبان در دهه ۱۹۷۰ پیچیدگی برنامه به طرز قابل توجهی در حال رشد بود اما ابزارهایی که برای برنامه‌نویسی استفاده می‌شد معمولاً شبیه به همان‌هایی بود که در دهه ۱۹۶۰ استفاده می‌شد. | ## بخش 2: پروگراف | این مسئله به هنگام کار روی پروژه‌های بزرگ منجر به بروز مشکلاتی می‌شد یعنی برنامه آنقدر پیچیده می‌شد که حتی تغییرات کوچک می‌توانست اثرات جانبی داشته باشد که فهم کامل آن‌ها سخت بود. تحقیقات قابل توجه روی این مشکل به این نتیجه رسید که مشکل تمرکز زیاد سیستم‌های برنامه‌نویسی موجود روی منطق برنامه بود در حالیکه در واقع دستکاری داده هدف برنامه محسوب می‌شد. اگر دستکاری داده مهم‌ترین جنبه برنامه است چرا داده «شهروند درجه اول» زبان برنامه‌نویسی نیست؟ با کار بر این مبنا تعدادی سیستم برنامه‌نویسی جدید مانند برنامه‌نویسی شی گرا و برنامه‌نویسی جریان داده ایجاد شدند.پروگراف بیشتر از این مفهوم تأثیر گرفت، ترکیبی از متدهای شی گرا و یک محیط کاملاً تصویری برای برنامه‌نویسی معرفی کرد. در پروگراف اشیاء توسط شش ضلعی‌هایی با دو بخش نمایش داده می‌شوند یکی شامل متغیرها و دیگری شامل روش‌هایی که روی داده‌ها عملیات انجام می‌شود. با کلیک کردن روی هریک از دو بخش، پنجره‌ای باز می‌شود که جزئیات آن شی را نشان می‌دهد. برای مثال باز کردن بخش متغیرها، متغیرهای کلاس را در بالا و متغیرهای نمونه را پایین نشان می‌دهد. باز کردن بخش متدها نحوه پیاده‌سازی متدها در کلاس و به علاوه ارث بری آن‌ها از کلاس بالایی را نشان می‌دهد. وقتی روی یک متد دو بار کلیک شود پنجره دیگری برای نشان دادن منطق متدها باز می‌شود. در پروگراف متدها به صورت یک سری از آیکون‌ها (که هر آیکون شامل یک یا تعدادی دستورالعمل است) و در هر متد جریان داده‌ها به صورت خطوط در یک گراف جهت دار نمایش داده می‌شود. | ## بخش 3: پروگراف | جریان‌های داده در بالای نمودار از دستورالعمل‌های مختلف عبور می‌کنند و در نهایت از پایین خارج می‌شود (اگر خروجی وجود داشته باشد) در یک زبان جریان داده هر عملیات به محض آن که ورودی‌های مورد نیاز برای همه اتصالاتش را در دسترس داشته باشد، اجرا می‌شود. زبان‌های جریان داده ذاتاً تمایل دارند هم‌زمان عمل کنند این یعنی آن‌ها طبیعتاً این قابلیت را دارند که روی سیستم‌های چند پردازنده اجرا شوند. برنامه‌ها در پروگراف با کدنویسی کمی ساخته می‌شوند و همین ویژگی پروگراف را به یک زبان ایده‌آل برای نمونه سازی برنامه‌های کاربردی تبدیل می‌کند. سرعت اجرای برنامه قربانی این سهولت استفاده و کارایی نمی‌شود.برنامه پروگراف می‌تواند کامپایل شود و اگر به مقدار کمی سرعت اضافه برای بخش‌هایی که بحران زمانی دارند نیاز داشتیم مجازیم کدهای نوشته شده به یک زبان سطح پایین‌تر مانند C را به برنامه اضافه کنیم. اجرا توسعه یکپارچه پروگراف و همچنین محیط اجرای آن مجاز به دیباگ کردن تصویری هستند و نقاط انفصال (مکان‌های عمدی برای اتمام یا توقف در یک برنامه که برای اهداف دیباگ کردن تعبیه می‌شوند) معمول و مکانیزم‌های تک مرحله‌ای حمایت شده‌اند. هر عملیات در یک برنامه جریان داده وقتی که انجام شود به صورت تصویری هایلایت می‌شود. وقتی که دیباگ کردن تمام شود اگر ماوس روی یک لینک داده قرار بگیرد مقادیر داده به صورت آنی نمایش داده می‌شود. برای برخی کاربران جنبه‌های محاسبات تصویری زبان به اندازه امکانات گرافیکی زمان ویرایش مهم است.مهم‌ترین ویژگی زمان اجرای دیباگ کردن امکان تغییر کد حین انجام عمل دیباگ است. این ویژگی باعث می‌شود اشکالات حین انجام دیباگ (اشکال زدایی) رفع شوند و نیازی به کامپایل دوباره نباشد. انتقادات مشکلات زیادی نیز همراه با اجرای متدهای سیستم پروگراف بروز کرده‌اند.کد برنامه پروگراف می‌تواند با استفاده از برچسب گذاری توضیح داده شود. | ## جمع‌بندی | این مشکل در نسخه‌های بعدی برطرف شد اما هیچ وقت این امکان فراهم نشد که کامنت‌ها توصیف کنند، متد چرا و چگونه کار می‌کنند.برنامه‌نویس بایستی به مسیر یابی اتصالات و کامنت گذاری ورودی‌ها و خروجی‌ها برای مرتب نگه داشتن کد نموداری دقت کند؛ و مشکل دیگر زیاد بودن پنجره‌ها بود به‌طور مثال برای مشاهده محتوای یک متد باید یک پنجره جدید باز شود.