ինչպէս է մայքրոսոֆթը խաղից հանել ոչ իր կոմպիլյատորները՝
մենք շատ նպատակաուղղուած էինք որպէսզի մեր Delphi եւ C++ կոմպիլյատորներով ստանանք WinRT֊ի համար կոդ։ Այս պահին խնդիրն այն է, որ այն ՕՀ API֊ները, որ անհրաժեշտ են քո լեզուի RTL֊ն իրականացնելու համար թոյլատրուած չեն։ Գիտէք, ասենք RtlUnwind֊ը բացառութիւնների մշակման կամ VirtualAlloc֊ն յիշողութեան կառաւարման համար… Այդ եւ նման ֆունկցիաներին դիմելը աւտոմատ որակազրկում է ձեր ծրագիրը․ այն չի կարող լինել «պաշտօնական» WinRT ծրագիր եւ տեղակայւել մայքրոսոֆթի խանութից։
աղբիւր (անգլերէն)
երբ նման բաներ եմ կարդում, զգում եմ, ինչքան չեմ ուզում գործ ունենալ այդ փակ էկոհամակարգերի հետ, ու ինչ հաւէս է ծրագիր գրել ազատ միջավայրերում՝ ազատ հարթակների համար։
#ծրագրաւորում #մայքրոսոֆթ #կոմպիլյատորներ #ծրագրաւորման_լեզուներ #մրցակցութիւն
փաստորեն, ինտել x87 նատիվ անում է հաշվապահական (Round half to even), ու բնավ ոչ մաթեմատիկական կլորացում։
Դա նաեւ ցույց է տալիս ում համար են առաջին հերթին պրոցեսորները արտադրվում՝ բիզնեսի, ոչ թե գիտնականների։
Ալսը, տարիներ առաջ ես գրել եմ MOD (կամ %) գործողության մասին։
այնպես որ զգոն եղեք կլորացնելիս։
ու տենց
այս փոսթի մոծիվներով։
Քոմփայլերը, ընկերներ, դա մտքերի եւ ցանկությունների իրականացման գործիք է։
Սովորաբար միտքը, որը տալիս են քոմփայլերին, որոշակի ստանդարտ ձեւով արտահայտված է՝ գրավոր, այս կամ այն լեզվով։
Այդ լեզուները երբեմն անվանում են համակարգչային լեզուներ, որը սխալ է։ Որովհետեւ համակարգիչները այդ լեզուներով չեն մտածում։
Երբեմն անվանում են ծրագրավորման լեզուներ, որը այդքան էլ արտահայտիչ չէ։
Իրականում դրանք միտք արտահայտելու լեզուներ են։
Այսպիսով, քոմփայլերը վերցնում է գրավոր արտահայտված միտքը, եւ այն հասկանալով ստեղծում է, քոմփիլիացիա է անում ելաքյին արտադրանք՝ օրինակ կիրառելի ծրագիր։
ՏՏ ոլորտի մասնագետների գործը դեռ հեշտ է։
Որովհետեւ սխալները միշտ կարելի է ուղղել եւ ռեքոմփայլ անել միտքը։ Դա բերում է անպատասխան կոդագործների առաջացմանը, ովքեր գրելիս չեն մտածում, իսկ հետո, երբ սխալները հայտնաբերվում են, փորձում են ուղղումներ ավելացնել։ Դրանք, ինչ խոսք, լավ ծրագրամիստներ չեն բնավ։
Պատկերացնու՞մ եք եթե ճարտարապետները նախագիծ պատրաստելիս չմտածեին, իսկ հետո տարբեր ձեւի հենարաններ ավելացնեին, որ կառույցը չփլվի։ Ոչ, ճարտարապետները ստիպված են ուշադիր լինել մտքերը մտածելիս եւ արտահայտելիս, որովհետեւ քոմփայլ անելու պրոցեսը շատ ավելի բարդ է իրենց դեպքում։
Օրինակ, ՕփենՕֆիսը իմ կոմպի վրա կոմպիլիացիա է լինում վեցը ժամում։ Շենք կառուցում են անհամեմատ ավելի երկար։
Իսկ հոմո սափիենս տեսակի կենդանիները գենետիկ կոդից քոմփայլ են լինում գրեթե մեկ տարի։ Ի դեպ, հոմո սափիենս նշանակում է «բանական մարդ»։ Ի նկատի ունենալով որ օրինակ շիմպանզեները այդքան էլ բանական մարդ չեն, սակայն մարդ են։
Կան նաեւ ֆունկցիոնալ լեզուներ, որոնք մի կողմից մաթեմին շատ մոտ են, սակայն մյուս կողմից դրանք օգտագործելիս անհնար կամ շատ դժվար է լինում նախագծի սխալները գտնել դեռ գրելու ընթացքում։ Այդ լեզուների երկրպագուները սովոր են արդեն իսկ կառուցված շենքեր փոփոխել։
Ես այդ ոճին սովոր չեմ, սակայն։ Ինձ թվում է որ մաթեմից ավելի հեռու, իմպերատիվ լեզուները իմ իմացած մակրո աշխարհի մոդելները նկարագրելու համար ավելի պիտանի են։
Այնպես որ, ինչպես ուսուցանում է հին չինական իմաստությունը՝ զգոն եղեք մտքերը ձեւավորելիս, նրանք կարող են քոմփայլ լինել իրագործվել։
ու տենց
Շատ բարդ էր այս գիրքը գտնել։
Ու վերջապես գտա, օգտագործածը։
Իրան խորհուրդ էր տվել Creenshaw-ն իրա քոմփայլերների գրքում։
POINTER TO սինտաքսը հայտնվեց Մոդուլայում։
Նախկին գրքի տերը հաստատ փորձում էր թարգմանել ծրագրի տեքստը Պասկալից Մոդուլա, կամ Օբերոն։
Մոդուլայում և Օբերոնում արդեն չկա function բառը, կան միայն PROCEDURE ներ։ ։Ճ
ու տենց
Նոր Ադայի քմփայլեր ա դուրս եկել։
Սա էլ Ադա-ով գրված վեհ ԾԱ-ի ցանկը։ Նենց բարձր ցանկ ա, բառացիորեն բարձր աշխատող սարքերի համար։
Սակայն, ես մի քիչ շփվել եմ էյր դեֆենս բաներ ադա-ով գրող տղեքի հետ։ Ասում են նույնիսկ Ադա95 չեն օգտագործում, ոչ մի օբյեկտներ։ Դե լավ դրանք ռադիկալ էին ու ինձ պարզ ա ինչի, բայց իրականում, վստահ չեի որ Ադա2005-ն ա առանձնապես անհրաժեշտ, ուր մնաց Ադա2012: Լավ, Ադա2005-ը ֆուլ ջեներիկ սափորթ ուներ, լինում էր թիթիզանալ պիպիսկաները համեմատելուց։ Է՞լ ինչ են ավելացնելու։ Գնամ կարդամ այդ մասին։
ու տենց
Այդպես է ստացվել, որ իմ աշխատանքները մի հիմնական ընդհանուր գիծ ունեն։
Օրինակ․
System programming-ը դա թերմ է որը նկարագրում է այն գործունեությունը, երբ ստեղծված ծրագրերը «նորմալ» մարդուն պետք չեն բնավ։ Եթե ես գրում եմ փաքաջ մենեջմենթի ծրագիր, կամ ինսթալեր, կամ քմփայլեր, կամ ասեմբլեր, կամ դեֆրագմենտեր – այդ գործիքները պետք չեն էնդ-յուզերին։ Դրանք պետք են նրա համար որ համակարգը աշխատի։ Ինսթալերի կամ փաքաջ մենեջմենթի շնորհիվ նա կունենա իր ուզած Տետրիսը կամ տեքստի խմբագրիչը։
Այդ իսկ պատճառով բարդ է լինում բացատրել ինչ եմ ես գրում։ Եթե ասեի խաղ կամ տեքստի խմբագրիչ – պարզ կլիներ։ Իմ դեպքում ես պարզապես չեմ խորանում սովորաբար, որովհետև արի ու բացատրի ինչ է փաքաջ մենեջմենթը կամ քմեայլերը։
IT բաժին – սովորաբար ընկերություններում վերջնական պրոդուկտը տալիս են այլ դեպարտամենտներ։ Նրանք տալիս են ասենք սոֆթ, կամ չիպերի նախագծեր։ Իմ գործը այնտեղ այն է ինչ քասթմերին պետք չէ բնավ, այլ անհրաժեշտ է նախագծման պրոցեսը ապահովելու համար։
Այսինքն սա այսպես ասած ինտերֆեյսային մասը չէ այլ իմպլեմենտացիայի։
Հետագայում, իհարկե նույն չիպը որպես մի քառակուսի նկարելով որևէ մի ինժեներ իրանով կսարքի ասենք հեռախոս։ Ու իրա համար չիպը հումք է։
Իսկ մարդու համար ինտերֆեյսը՝ խանութ է։ Որտեղ նա ձեռք կբերի այս հեռախոսը։
Ու նեսթեդ իմփլեմենթեյշնների մասին նա ոչ պետք է իմանա ոչ էլ գաղափար ունի։
ու տենց
էս քոդվիժն սի քմփայլերը ինչ ախմախ բան դուրս եկավ։
նեսթդ քոմենթը ինչ էր որ չկարողացան անել։ էդ որպես մասնագետ եմ ասում, երեք տող բան էր ավելանալու որ կարողանա պարս անել։
ու տենց
I guess nobody would be interested, just ignore this message.
Of course, not much sense without multitouch support(that was irony), but here it is, as a proof:
(drum roll)
Oberon V4 (Kepler version, Linz, Austria) running on top of maemo on my Nokia N810 🙂
WHERE IS THE MIDDLE CLICK OF THE MOUSE ??????
I will try to not forget, and write in details about this, and my other Nokia N series hacks.
_und so weiter _
(15:09:46) norayr: anyone tried to crosscompile gentoo system in QEMU by using sd card as a qemu hard drive?
(15:10:05) norayr: then get out out the card and insert it into nokia
(15:10:27) Stskeeps: norayr: there are insane people like that around here, yes
(15:10:33) norayr: nice 🙂
_ու տենց _
_ու տենց_
Computer Language – это неправильный термин.
Языки программирования – самые что ни на есть Human языки. Они созданы людьми для людей, чтобы с их помощью выражать (описывать) и читать мысли (читать – если это не перл :))
Наличие компилятора только подтверждает мою мысль, ведь он транслирует человеческое описание алгоритма в машинные коды – нативный компьютерный язык.
Человек, который умеет писать, скажем в шестнадцатиричном коде, – он знает компьютерный язык. Тот, кто знает ассемблер – умеет общаться с компьютером со словарем. А тот кто знает Си или Паскаль – он не умеет общаться с компьютером без переводчика 🙂
Люди думают по разному, и именно поэтому есть такое количество языков программирования
tinycc – tcc
Recently I have managed to port oo2c Oberon compiler to a number of nmos6502 based platforms including
Atari 8 bit
Apple ][
Commodore
Pet
Oric Atmos
NES
oo2c is two pass Oberon-2 language compiler. First pass generates abstract syntax tree and second pass generates target machine code. Currently oo2c generates very optimized ansi-c code.
That code is very similar to assembler, with many goto statements etc.
oo2c developers prefer to use C as a portable assembler and for that reason it is possible not only to write in Oberon-2 language for most of the platforms but also to easily port it to any platform if there is C compiler available for it.
Initially Stewart Greenhill who sometimes deal with embedded systems and avr micro controllers have been written minilib and changed oo2c code so it could generate code for 8 bit cpus. I have changed minilib so it could be compiled with cc65 c compiler which generates code for many 8 bit 6502 based platforms. That is why now one can write object oriented code for nmos 6502 platforms 🙂
Compiler port is available for download at http://sourceforge.net/projects/nmos6502-oo2c
you may compare packages popularity, like I have compared popularity of freepascal, gnu pascal, gnat (ada) and oo2c (oberon) compilers
Compiler benchmarks