համակարգիչների, կամ համակարգչային տեքնոլոգիաների մասին պատմելիս, յաճախ պատմում ենք այնպէս, ինչպէս կը պատմէինք ֆիզիկայի մասին։
մինչդեռ էական տարբերութիւնն այն ա, որ համակարգիչները մենք ենք նախագծել, ի տարբերութիւն տիեզերքի։
ու պատճառներ կան, որ նախագծել ենք հէնց այդպէս, ինչպիսին են։ եւ լեզուներն ենք մենք նախագծել։
ու կարեւոր ա հասկանալ պատճառները, նախագծման որոշումները։ ոչ միայն որ «սա այսպէս ա», այլ հէնց «ինչի ա սա այսպէս», ինչի՞ ենք այսպէս արել։ եւ ինչի ա դա վատ միտք, ինչի՞ չէինք ֆայմել էն ժամանակ այլ ձեւ անել։ ինչպէ՞ս կանէինք այսօր, բայց չենք անում։ ինչպէ՞ս անում ենք։
շատ քիչ գրքեր կան, որ նման ձեւ են բացատրում տեքը։ օրինակ, չարլզ պետզոլդի «կոդում» շատ կարեւոր ա այն, որ ինքը բացատրում ա, ինչի՞ հէնց բինար, եւ պատմում ա ինչպէս ենք դարերով եկել այդ մտքին։ այդ համար նա անդրադառնում ա եւ բրայլի այբուբենին, եւ մորզէի յօրինած կոդաւորմանը։
այսպէս, աւաղ, յաճախ չի լինում։
սովորեցնելիս համակարգչային ճարտարապետութիւն, կամ ծրագրաւորման լեզուներ, կամ ձեւեր, նախագծման որոշումների վրայ չենք կենտրոնանում, ու ընդունում ենք դրանք տուեալ։
մինչդեռ նախագծել են մարդիկ, եւ միշտ չի որ լաւ մտքի եկել են։ եւ ինձ թւում ա կարեւոր շեշտել՝ որ գիտէք, այստեղ լաւ լուծում չունենք։ կարող էք մտածել, գուցէ գիտական աշխատանք անէք եթէ այլ լուծում մտքին գայ։ իսկ սա այսպէս ա՝ բայց դա մենք ենք արել, այս պատճառներով։
#անկապ #ուսուցում #գիտութիւն #կարգիչ #համակարգիչ #տեքնոլոգիաներ #տեքնոլոգիա #տեք #պետզոլդ #կոդ #մորզէ #բրայլ #այբուբեն #կոդաւորում #նախագծում #որոշում
քամին տարածել էր ադոբի ելատեքստը, ու ես ուզեցի մեկնաբանել, ինչպէս ա տարբերուում ադոբի ու բորլանդի պասկալի ֆորմատինգի ստանդարտը։
#պասկալ #էկրանահան #կոդ #ծրագրաւորում #մշակոյթ
ստեղ էլ փակցնեմ՝
ադոբի՝
PROCEDURE AddCode (node: PNode; code: INTEGER; VAR word: Str255);
VAR
branch: INTEGER;
BEGIN
IF LENGTH (word) = 0 THEN
BEGIN
IF node^.leaf OR (node^.branch [0] <> NIL) OR
(node^.branch [1] <> NIL) THEN
BEGIN
WRITELN ('? Conflict for code ', code:1);
EXIT (PROGRAM)
END;
node^.leaf := TRUE;
node^.code := code
END
ELSE
BEGIN
IF word [1] = '0' THEN
branch := 0
ELSE IF word [1] = '1' THEN
branch := 1
ELSE
BEGIN
WRITELN ('? Invalid word for code ', code:1);
EXIT (PROGRAM)
END;
DELETE (word, 1, 1);
IF node^.branch [branch] = NIL THEN
BEGIN
NEW (node^.branch [branch]);
node^.branch [branch]^.leaf := FALSE;
node^.branch [branch]^.branch [0] := NIL;
node^.branch [branch]^.branch [1] := NIL
END;
AddCode (node^.branch [branch], code, word)
END
END;
բորլանդի՝
procedure AddCode(node: PNode; code: INTEGER; var word: Str255);
var branch: integer;
begin
if length(word) = 0 then
begin
if node^.leaf or
(node^.branch[0] <> nil) or
(node^.branch[1] <> nil) then
begin
WriteLn('? Conflict for code ', code:1);
Halt //ստեղ նաեւ փոխել եմ Exit ֆունկցիան
end;
node^.leaf := true;
node^.code := code
end
else
begin
if word[1] = '0' then
branch := 0
else
if word[1] = '1' then
branch := 1
else
begin
WriteLn('? Invalid word for code ', code:1);
Halt
end;
delete(word, 1, 1);
if node^.branch[branch] = nil then
begin
new (node^.branch[branch]);
node^.branch[branch]^.leaf := false;
node^.branch[branch]^.branch[0] := nil;
node^.branch[branch]^.branch[1] := nil
end;
AddCode (node^.branch [branch], code, word)
end
end;
ահա, Վիրտի PICL լեզուի կոմպիլյատորը, որ նախատեսուած է PIC16F84 միկրոկոնտրոլերներ ծրագրաւորելու համար, կարողացայ տեղափոխել Լինուքս, աշխատեցնել, եւ կոմպիլյացիա անել մի քանի թեստ։
ահա կոդը եւ գրառում վիշապ օբերոնի կայքում։
մինչ
ահա եւ ելատեքստը
#էկրանահան #ամպ #առօրեայ #կոդ #արեւային_էներգիա #պասկալ
#էկրանահան #առօրեայ #կոդ #արեւային_էներգիա #պասկալ
մարդիկ շշերի մէջ են ինչ֊որ բաներ տեսնում, ես էլ թէյիս բաժակի մէջ լողացող կոդի տողեր եմ տեսնում հիմա։
#ելատեքստ #կոդ #հայելապատկերում
«քիփ մուվին օն»
#էկրանահան #կեանք #ծրագրաւորում #ուտենց #կոդ