Кіріспе

Програф – деректер ағынына негіделген, объектіге бағытталған, көп парадигмалы визуалды бағдарламалау тілі. Ол деректермен орындалатын әрекеттерді көрсету үшін икондық символдарды пайдаланады. Prograph Classic және Prograph CPX сияқты коммерциялық Prograph бағдарламалық жасақтаманы дамыту орталары көп жылдар бойы Apple Macintosh және Windows платформалары үшін қолжетімді болды, бірақ 1990 жылдардың соңында нарықтан алынып тасталды. MacOS жүйесінде Prograph тіліне қолдау Marten бағдарламалық жасақтаманы дамыту ортасының жақындағы шығарылымымен қайта жаңғырды.

Тарих

Прографты зерттеу 1982 жылы Акадия университетінде Майкл Левин жүргізген функционалдық тілдер семинарынан кейін дерек ағыны тілдерін зерттеумен басталды. Диаграммалар талқылауды түсіндіру үшін қолданылды, бұл ойға әкелді: «Диаграммалар кодтан түсінікті болғандықтан, неге диаграммалардың өзін орындамассын?» Осылайша, графикалық бағдарламалау визуалды деректер ағыны тілі ретінде дүниеге келді. Бұл жұмысты доктор Томаш Пьетшиковский басқарды, ал Стэн Матвин мен Томас Мулднер ертедегі еңбектерді бірлесіп жазды. 1983 жылдан 1985 жылға дейін зерттеу прототиптері Three Rivers PERQ графикалық жұмыс станциясында (Pascal тілінде, деректер деректер байланыстары арқылы төмен қарай қозғалатын от шарлары түрінде бейнеленген) және Tektronix терминалы бар VAX жүйесінде құрылды, ал тәжірибелік компилятор IBM PC-де бағдарламаланды. Бұл жұмысты Новая Шотландия Техникалық Университетінде Пьетшиковский мен доктор Филип Кокс жалғастырды, соның ішінде Prolog тілінде жасалған нұсқасы да болды. 1985 жылы Macintosh жүйесіндегі коммерциялық прототип бойынша жұмыс басталды, ол сол кезде қол жетімді ең арзан, кең таралған және жоғары деңгейдегі графикалық қолдауы бар компьютер болды. 1986 жылдың басында бұл прототипті коммерцияландыру үшін The Gunakara Sun Systems (кейіннен TGS Systems деп аталды) сатып алды, ал TGS бұрын Пьетшиковский Акадия университетінде құрған консалтингтік фирма болды. Пьетшиковский мен Кокспен бірге жұмыс істеп, Терри Килшоу бастапқы әзірлеу тобын жалдап, бас әзірлеуші ретінде Джим Ласкиді тағайындады. 1987 жылы Марк Шпаковски объектіге бағдарлануды визуалды деректер ағынымен біріктіруді ұсынды, нәтижесінде «объект ағыны» жүйесі құрылды. Шамамен төрт жылдық дамудан кейін, алғашқы коммерциялық нұсқасы v1.2 1989 жылдың қазан айында Нью-Орлеандағы OOPSLA конференциясында таныстырылды. Бұл өнім 1989 жылы MacUser Editor's Choice Award сыйлығын үздік әзірлеу құралы ретінде жеңіп алды. 1990 жылдың шілдесінде шыққан 2.0 нұсқасы жүйеге компиляторды қосты. 1990 жылы TGS өзінің атын Prograph International (PI) деп өзгертті. Сатулар баяу болғанына қарамастан, 1992 жылы жаңа нұсқаны, Prograph CPX (Cross Platform eXtensions) әзірлеуге кірісті, ол толыққанды платформааралық қосымшаларды құруға арналған. Бұл нұсқа 1993 жылы шығарылды, содан кейін бірден клиент-серверлік қосымшалар үшін құрылғыны әзірлеу жұмыстары басталды. Сатудың өсуіне қарамастан, компания операциялық шығындарды өтей алмады және 1994 жылдың соңында қаржыландыруға қол жеткізе алмағаннан кейін 1995 жылдың басында банкротқа ұшырады. PI басшылығы мен қызметкерлері банкроттық рәсімдер кезінде жаңа компания – Pictorius құрды, ол PI активтерін сатып алды. Содан кейін Prograph CPX-тің Windows нұсқасын әзірлеу жұмыстары басталды. Ол ресми түрде шығарылмағанымен, Windows Prograph нұсқалары Prograph CPX клиенттеріне үнемі қолжетімді болды, олардың кейбіреулері Macintosh Prograph-та жазылған қолданбаларды әртүрлі деңгейде сәттілікпен көшірді. Жаңа компанияда басқарушылық өзгерістерден кейін, құралдарды әзірлеуден бейімделген бағдарламалау және веб-қосымшаларды әзірлеуге басымдық берілді. 2002 жылдың сәуірінде компанияның веб-даму бөлігі Бермудадағы Paragon Technology Group компаниясымен сатып алынып, Paragon Canada деп қайта аталды. Pictorius атауы мен Prograph бастапқы кодына құқықтарды McLean Watson Capital, Pictorius-ті қаржыландырған Торонтодағы инвестициялық фирма сақтап қалды. Пикториус туралы сілтеме бір кезде оның портфолио бетінде болды, бірақ кейіннен жоғалып кетті. CPX-тің Windows нұсқасы кейіннен тегін пайдалануға шығарылды және Pictorius веб-сайтының қалдықтарынан жүктеуге қолжетімді болды (төмендегі сілтеме). Prograph пайдаланушыларының («Prographers») тобы, өздерін «The Open Prograph Initiative» (OPI) деп атады, 1990-шы жылдардың соңында Apple және Microsoft-тың операциялық жүйелерінің жетістіктеріне қарамастан Prograph-ты қолдауға бағытталды. Бір кезде топ Prograph-тың мұрагері болатын жаңа ашық кодты визуалды бағдарламалау тілін жасауға тырысты, бірақ Andescotia-ның Marten визуалды бағдарламалау ортасы пайда болғаннан кейін топқа қатысу тоқтады. Prograph тілі Andescotia Software компаниясының Marten IDE жүйесімен қолдалады.

Сипаттама

1970 жылдары бағдарламаның күрделілігі едәуір өсті, бірақ бағдарлама жазуға қолданылатын құралдар негізінен 1960 жылдардағыдай болды. Бұл үлкен жобалармен жұмыс істеу кезінде қиындықтар тудырды, себебі олар соншалықты күрделі болатын, тіпті ең қарапайым өзгерістердің де толыққанды түсінілмейтін жанама салдары болуы мүмкін. Осы мәселеге қатысты жүргізілген зерттеулер көптеген мамандарды осы проблеманың себебі – қазіргі бағдарламалау жүйелері бағдарламаның логикасына баса назар аударады деген қорытындыға әкелді, ал шындығында бағдарламаның мақсаты деректерді өңдеу болып табылады. Егер деректерді өңдеу бағдарламаның маңызды бөлігі болса, неге деректер бағдарламалау тілінің «бірінші дәрежелі азаматы» емес? Осы ойға сүйене отырып, жаңа бағдарламалау жүйелері пайда болды, олардың ішінде объектіге бағытталған бағдарламалау және деректер ағыны бағдарламалау да бар. Prograph осы ұғымдарды одан әрі дамытып, объектіге бағытталған әдістемелерді және бағдарламалау үшін толыққанды визуализацияланған ортаны ұсынды. Объектілер екі жақты алтыбұрыштар түрінде бейнеленеді, бір жағында деректер өрістері, екінші жағында олармен жұмыс істейтін әдістер орналасқан. Кез келген жақты екі рет шерту сол объектінің толық ақпаратын көрсететін терезені ашады; мысалы, айнымалылар жағын ашса, жоғарыда сынып айнымалылары, ал төменде инстанция айнымалылары көрсетіледі. Әдіс жағын екі рет шерту осы класта жүзеге асырылған әдістерді, сондай-ақ жоғары кластан мұраланған әдістерді көрсетеді. Әдістің өзі екі рет шертілсе, логиканы көрсететін жаңа терезе ашылады. Prograph-та әдіс бірнеше белгішелермен бейнеленеді, әрбір белгішеде нұсқаулар (немесе олардың тобы) болады. Әрбір әдіс ішінде деректер ағыны бағытталған граф түріндегі сызықтармен көрсетіледі. Деректер диаграмманың жоғарғы жағынан ағып, түрлі нұсқаулардан өтеді және соңында төменгі жағына жетеді (егер нәтиже болса). Prograph жүйесінің бірнеше ерекшеліктері деректер базасын сұрыптау операциясының осы суретінен анық көрінеді. Жоғарғы панель бұл әдіс, бір мезгілде сұрыптау, бір параметрді қабылдап алатынын көрсетеді – деректер базасының нысаны. Бұл нысан сызықтар арқылы бірнеше операцияларға жіберіледі. Олардың үшеуі getter операциясын пайдаланып (қосылмаған getter шығысы «толық» нысанды жібереді) нысаннан атаулы индекс (indexA және т.б.) алады, содан кейін алынған индексті сұрыптау операциясына жібереді. Осы сұрыптау операцияларының нәтижелері бастапқы деректер базасына сілтемемен бірге соңғы операцияға, деректер базасын жаңартуға жіберіледі. Суреттің төменгі жағындағы панель осы әдістің шығыстарын көрсетеді, бірақ бұл жағдайда оған ешқандай қосылымдар жоқ, сондықтан бұл әдіс ешқандай мән қайтармайды. Сондай-ақ, бұл әдіс қандай да бір сыныпқа жатса да, өзіндік анықтамасы жоқ екенін ескеріңіз; егер өзіндік анықтама қажет болса, оны кіріс ретінде беруге немесе іздеуге болады. Деректер ағыны тілінде операциялар барлық қосылымдар үшін жарамды кіріс болған кезде орындалуы мүмкін. Яғни, дәстүрлі түсінік бойынша, бұл әдістегі әрбір операция бір уақытта орындалуы мүмкін. Деректер базасының мысалында, егер компьютер деректерді жеткізе алса, барлық сұрыптаулар бір уақытта орындалуы мүмкін. Деректер ағыны тілдері табиғаты бойынша бір мезгілде жұмыс істеуге бейім, яғни олар көппроцессорлық жүйелерде «табиғи түрде» жұмыс істей алады, бұл 1980 жылдары оларға қызығушылықтың артуына себеп болды. Циклдар мен тармақтар операцияларды және түсіндірмелерді өзгерту арқылы құрылады. Мысалы, кіріс деректерінің тізімі бойынша doit әдісін шақыратын цикл, ең алдымен doit операторын сүйреп, содан кейін цикл модификаторын қосып, тізімді циклдің кірісі ретінде беру арқылы жасалады. Тағы бір түсіндірме, «инъекция», әдістің өзін кіріс ретінде беруге мүмкіндік береді, бұл Prograph-ты белгілі бір дәрежеде динамикалық тілге айналдырады.

Атқару

Интеграцияланған Prograph әзірлеу және орындау ортасы визуалды түрде қателерді жоюға да мүмкіндік берді. Кәдімгі үзіліс нүктелері және бір қадамдық механизмдер қолдау тапты. Деректер ағыны диаграммасындағы әрбір операция орындалғанда визуалды түрде бөлініп көрсетілді. Тоқтатылған қателерді жою режимінде дерек сілтемесінің үстінен тышқанды ұстағанда дерек мәндерін көрсетуге арналған құралдар жинағы сияқты механизм болды. Орындау стегінің визуалды көрсетілімі орындауды кері және алға қарай жылжытуға мүмкіндік берді. Көптеген пайдаланушылар үшін тілдің орындалуының визуалды аспектілері, оның өңдеу кезіндегі графикалық мүмкіндіктерімен бірдей маңызды болды. Орындау кезінде қателерді жоюдың ең маңызды мүмкіндігі – қателерді жою кезінде кодты дереу өзгерту мүмкіндігі болды. Бұл қайта компиляциялау қажеттілігінсіз, қателерді жою барысында түзетуге мүмкіндік берді.