Սկիզբ » Հեղինակ ՝ armenbadal

Հեղինակի հոդվածները: armenbadal

Ժապավեն

Հեղինակի կայքը

Գրել է 31 հոդված:

Բաժինները ` Ծրագրավորում , Ուսումնական նյութեր , Lisp և Common Lisp , Կոմպիլյատորներ , Go , Ծրագրավորման լեզուներ , Ալգորիթմներ , C և C++ , Java , Վերլուծություն , PROLOG , Տվյալների բազաներ , Python , Հումոր , Լինուքս/Յունիքս հրամաններ

Հետաքրքրությունները` C++ , go , LISP , Common Lisp , Java , AST , Scanner , Parser , Tcl , lambda , binary search tree

Yacc֊ի և Lex֊ի մասին

| Նոյեմբեր 28, 2016 |
Yacc֊ի և Lex֊ի մասին

Ովքե՞ր են այդ Yacc֊ն ու Lex֊ը Ի՞նչ է լեզվի քերականությունը Լեզվի սահմանում GNU Bison֊ի ֆայլը Քերականության ստուգումը Bison֊ի միջոցով Բառային վերլուծություն Flex֊ի միջոցով Գործարկման առաջին փորձ Թեսթավորում․ առաջին մաս Արվածի ամփոփում և հետագա քայլերի մշակում Աբստրակտ քերականական ծառ Bison նկարագրության ընդլայնում Գործարկման երկրորդ փորձ Ես պատմում եմ ծրագրավորման լեզվի շարահյուսական վերլուծիչի իրականացման մասին։ Պատմությունս հնարավորին […]

Կարդալ ամբողջը

Միակապ ցուցակի շրջելը ռեուրսիվ եղանակով

| Դեկտեմբեր 15, 2015 |
Միակապ ցուցակի շրջելը ռեուրսիվ եղանակով

Մի քանի օր առաջ Լիլիթն ինձ առաջարկեց գրել միակապ ցուցակը շրջելու ֆունկցիան՝ օգտագործելով ռեկուրսիվ ալգորիթմ։

Կարդալ ամբողջը

[գիրք] Զրույցներ C լեզվի մասին

| Ապրիլ 6, 2014 |
[գիրք] Զրույցներ C լեզվի մասին

Ես նախաձեռնել եմ այս զրույցների շարքը որպես C ծրագրավորման լեզուն ներկայացնող կենդանի գիրք։ Կենդանի այն իմաստով, որ զրույցների պարունակությունը երբեք վերջնական չի լինելու։ Տեքստն անընդհատ թարմացվելու է և լրացվելու է նոր նյութով։ Որպես առաջին քայլ, ես կպատմեմ ամենաանհրաժեշտ, ամենակարևոր նյութը ․․․

Կարդալ ամբողջը

Scheme: Չփոփոխվող բինար ծառերի մասին

| Մարտ 12, 2014 |
Scheme: Չփոփոխվող բինար ծառերի մասին

Ուզում եմ օրինակով ցույց տալ, թե ինչպես կարելի է ծրագրեր գրել օգտագործելով միայն չփոփոխվող (immutable) տվյալների կառուցվածքներ։ Այս անգամ բինար որոնման ծառերի վարքը ծրագրավորել եմ Scheme լեզվով (այն Lisp ընտանիքի թերևս ամենահայտնի ներկայացուցիչն է)

Կարդալ ամբողջը

Տն. աշխ. #3: Նախապատվություններով հերթ

| Փետրվար 14, 2013 |
Տն. աշխ. #3: Նախապատվություններով հերթ

Հերթի այն տեսակը, որտեղ տարրերը կարող են ավելացվել կամայականորեն, բայց կարող են հեռացվել միայն ըստ նրանց մեջ սահմանված կարգի, կոչվում է նախապատվություններով հերթ։ Օրինակ, եթե որպես հերթի մեջ ավելացվող տարրեր դիտարկվում են թվերը, իսկ թվերի մեջ սահմանված կարգ է հանդիսանում “<” (փոքր է) գործողությունը, ապա ամեն անգամ հերթից որևէ տարր պահանջելով կստանանք այնտեղ եղած տարրերից […]

Կարդալ ամբողջը

Տնային աշխատանք #2։ Սիմվոլիկ դիֆերենցում

| Փետրվար 8, 2013 |
Տնային աշխատանք #2։ Սիմվոլիկ դիֆերենցում

Մի քանի օր առաջ թերթում էի Structure and Interpretation of Computer Programs գիրքը և աչքովս ընկավ մի օրինակ, որտեղ հաշվում էր պարզագույն մաթեմատիկական արտահայտությունների դիֆերենցիալը (2.3.2 Example: Symbolic Differentiation)։ Փորձեցի այն վերարտադրել Tcl լեզվով ու ահա թե ինչ ստացվեց։ Նախապես ասեմ, որ արտահայտություները սահմանափակված են միայն գումարում, հանում, բազմապատկում և բաժանում բինար գործողություններով, իսկ դիֆերենցիալը […]

Կարդալ ամբողջը

Չփոփոխվող տվյալների կառուցվածքների մասին

| Հունվար 30, 2013 |
Չփոփոխվող տվյալների կառուցվածքների մասին

Շարունակելով իմ նախորդ գրառման բինար որոնման ծառերի թեման, ուզում եմ նույն այդ օրինակով ցույց տալ, թե ինչպես կարելի է ծրագրեր գրել օգտագործելով միայն չփոփոխվող (immutable) տվյալների կառուցվածքներ։ Այս անգամ բինար որոնման ծառերի վարքը ծրագրավորել եմ Scheme լեզվով (այն Lisp ընտանիքի թերևս ամենահայտնի ներկայացուցիչն է)։ Ծառը ներկայացված է ցուցակի տեսքով, որի առաջին տարրը արմատի արժեքն է, […]

Կարդալ ամբողջը

C++11: Բինար որոնման ծառեր

| Հունվար 24, 2013 |
C++11: Բինար որոնման ծառեր

Այս գրառման մեջ ես ներկայացնում եմ բինար որոնման ծառի (binary search tree, BST) դասի ծրագրավորումը C++11 լեզվով։ Բինար որոնման ծառերն առանձնանում են նրանով, ամեն մի հանգույցի պարունակած արժեքը ավելի փոքր է քան նրա ձախ ենթածառի արժեքները և ավելի մեծ է, քան նրա աջ ենթածառի արժեքները։ Քանի որ բինար ծառի ամեն մի հանգույցը կարող է ունենալ […]

Կարդալ ամբողջը

Common Lisp: Պարզ ու կատարյալ թվերի մասին

| Հունվար 20, 2013 |
Common Lisp: Պարզ ու կատարյալ թվերի մասին

«N թիվը կոչվում է պարզ, եթե այն բացի մեկից և իրենից այլ բաժանարարներ չունի։» Եթե թվի պարզությունը որոշող ֆունկցիան գրենք ըստ այս սահմանման, ապա պետք է որ ստանանք մոտավորապես հետևյալը․ (defun is-prime-a (num) (loop for k from 2 to (1- num) never (zerop (mod num k)))) Սա իմպերատիվ լուծում է, որտեղ ցիկլի կազմակերպմամբ բացահայտորեն նկարագրված […]

Կարդալ ամբողջը

Tcl ցուցակների հետ աշխատանքը

| Հունվար 17, 2013 |
Tcl ցուցակների հետ աշխատանքը

Ցուցակները Tcl լեզվում կառուցվում են list պրոցեդուրայով։ Այն ստանում է արգումենտների ցուցակ, հաշվարկում է դրանք և արդյունքներից կառուցվում է նոր ցուցակ։ Օրինակ, set a [list [expr 1 + 2] 7 [expr 34 * 2]] պրոցեդուրայի կատարումը a փոփոխականին կվերագրի {3 7 68} ցուցակը։ Հաստատուններից ցուցակ կարելի է կառուցել դրանք պարզապես թվարկելով “{” և “}” փախագծերի […]

Կարդալ ամբողջը

88