navinnseab/khmer-wikipedia-article huggingface dataset:
ភាសា និង​អក្សរ​ខ្មែរ: ៥-កន្សោមពាក្យ

៥-កន្សោមពាក្យ
៥.១.កន្សោមនាម
ជាកន្សោមដែលមាននាមជាបង្គោល។ គេអាចពង្រីកនាមដោយវិធីពីរយ៉ាងគឺ ពង្រីករណប និង ពង្រីកមិនរណប។
		
៥.១.១.ពង្រីករណប
ក្នុងពង្រីករណប គេអាចពង្រីកនាមដោយបន្ថែមៈ
-គុណនាមប្រក្រតី ឬ កន្សោមគុណនាម ( គុណបទ )
-កន្សោមមានធ្នាក់ ( កម្មបំពេញបទរបស់នាម )
-កន្សោមនាម ( ឧបបទ )
-ឃ្លារណប

ក-កន្សោមនាមរីកដោយគុណនាមប្រក្រតី ឬ កន្សោមគុណនាម
គុណនាមជាធាតុសំខាន់ តែពុំចាំបាច់របស់កន្សោមនាម។ វាសម្រាប់ចង្អុលបង្ហាញសភាព លក្ខណៈ ឬគុណភាពរបស់មនុស្ស សត្វ និងវត្ថុ

• ក្នុងកន្សោមនាម គុណនាមនៅខាងស្តាំនាម។
ឧទាហរណ៍៖	 ផ្ទះ ធំនេះ គោ ក្រហមនោះ បងស្រី វាពីរនាក់នោះ........។

• គុណនាមតែមួយអាចជាគុណបទរបស់នាមច្រើនបាន។
ឧទាហរណ៍៖ ខោ និង អាវ ក្រហម។ ស្បែកជើង និងស្រោមជើង ខ្មៅ។

• គុណនាមគុណបទនៅជាប់នឹងនាម គឺនៅចន្លោះនាមនិង កំណត់។
ឧទាហរណ៍៖ ខោ អោវ ក្រហម នេះ។
	
គេអាចពង្រីកគុណនាមដោយបន្ថែមគុណកិរិយា ឬបន្ថែមកន្សោមមានធ្នាក់ ។ ក្នុងកន្សោមនាម នាមអាចពង្រីកបានៈ
- កន → ន + កំ
ឧទាហរណ៍៖ ផ្ទះនេះ កុមារ ទាំងឡាយ មនុស្សណា.......។

- កន → ន + ព + កំ
ឧទាហរណ៍៖ ចេក ទុំល្អណាស់ មួយស្និតនេះ។

- ព → កគុ ( កន្សោមគុណនាម )
ឧទាហរណ៍៖ ទុំល្អណាស់។

- កគុ → គុ + កគុណ ( កន្សោមគុណកិរិយា )
ឧទាហរណ៍៖ ទុំ + ល្អណាស់។
	
- កគុណ→គុណ + គុណ( គុណកិរិយា )		
ឧទាហរណ៍៖ ល្អ + ណាស់។
	
-កំ → ចំ. ( ចំនួន ) + រន( រនាប់ ) + ច. ( ចង្អុល )
ឧទាហរណ៍៖ មួយ + ស្និត + នេះ។

ខ. កន្សោមនាមរីកដោយកម្មបំពេញបទ
ឧទាហរណ៍៖ 
សួនបន្លែ នៃផ្ទះចាស់មួយ។
-គោ របស់ជីតាខ្ញុំ។
-មួកមួយ របស់កម្មករម្នាក់។
កម្មបំពេញបទរបស់នាមពង្រីក ( របស់នាម )ដែលភ្ជាប់ទៅនឹងនាមដោយសារ ធ្នាក់ (នៃ ឬ របស់ )។

គ.កន្សោមនាមរីកដោយសារឧបបទ
ឧទាហរណ៍៖
- សុខ មិត្តខ្ញុំ ខំប្រឹងរៀនណាស់។
-អាលុក ឆ្កែសំ ជាសត្វឧស្សាហ៏។
-កញ្ញាសុជាតា អ្នកគ្រូយើង ចូលចិត្តម្ហូបខ្មែរ។
ដូចនេះនាមឧបបទសម្រាប់បញ្ជាក់ន័យរបស់នាមមួយទៀត ដោយសំដែងនូវ លក្ខណៈ មនុស្ស សត្វ ឬ វត្ថុ ដូចគ្នា។

ឃ. កន្សោមនាមរីកដោយសារឃ្លារណប
ឧទាហរណ៍៖
-សិស្ស ដែលខំរៀន តែងតែប្រឡងជាប់។
-កសិករ ដែលអស់កម្លាំង អង្គុយនៅស្ងៀមស្ងាត់។
-មាណពទីទ័លក្រនេះ មានពូថៅតែមួយគត់ ដែលជាមតិកដ៍ស្តុកស្តម្ភ។
-រថយន្តមួយគ្រឿង ដែលបងខ្ញុំទើបតែទិញពីប្រទេសជប៉ុន ជារថយន្តរបស់ក្រុមហ៊ុន តូយ៉ូតា។
		
៥.១.២.ពង្រីកមិនរណប
	
ក. កន្សោមនាម + ឈ្នាប់ + កន្សោមនាម
ឧទាហរណ៍៖
-បងប្រុសសំ និងបងស្រីសំ ទៅស្រែ។
-យុវ័ន និងយុវតីខ្មែរទាំងអស់ ជាកម្លាំងដ៍សកម្មរបស់ប្រទេសជាតិ។
-មាតា និងបិតា វាជា សមាជិត និងសមាជិកា នៃភូមិយើង។
	
ខ. កន្សោមនាមរីក + ឈ្នាប់ + កន្សោមនាមរីក
-កនរីក → កន + ព. រណប
-កនរីក → កន + កម្មបំពេញបទ
ឧទាហរណ៍៖ កូនរបស់ពូសុក និងកូនរបស់ពូសៅទៅសាលារៀន។

-កនរីកកន + គុណបទ
ឧទាហរណ៍៖ គាត់ទិញបន្ទាត់ ក្រហមមួយ និងប៊ិច ក្រហមមួយ។

- កនរីក → កន + ឧបបទ
ឧទាហរណ៍៖ ពូសុក កសិករភូមិត្នោត និង ពូសៅ កសិករភូមិអណ្តូង កំពង់ភ្ជូរស្រែ ជាមួយគ្នា។ 	

-កនរីក → កន + ឃ្នារណប
ឧទាហរណ៍៖ អាវស និង សំពត់ក្រហម ដែលខ្ញុំទើបនឹងទិញ ជាផលិតផល របស់ក្រុមហ៊ុនខ្មែរ។

គ. ពង្រីកនៃកន + ឈ្នាប់ + ពង្រីកនៃកន
ឧទាហរណ៍៖ 
- កុមារ ឧស្សាហ៏ និង ឈ្លាសវៃនេះ ប្រលងជាប់លេខ១។ ( ពង្រីកនៃ កន.  បែបគុណបទ)	
- កូន របស់ពូសំ និង មីងសួន ចេះគួរសមណាស់។ ( ពង្រីកនៃ កន. បែបកម្មបំពេញបទ)		
- សាន សិស្សថ្នាក់ទី៧ និង ជាជើងឯកខាងកីឡាបាល់ទាត់ បានរង្វាន់ លេខ២។    (ពង្រីកនៃ កន. បែបឧបបទ )
- សៀវភៅ ដែលគេស្រលាញ់ ហើយថែទាំបានល្អ ធើ្វឲ្យគេចូលចិត្តអានរាល់ថ្ងៃ (ពង្រីក នៃកន. បែបឃ្លារណប )

៥.២.កន្សោមកិរិយា
ភាសា និង​អក្សរ​ខ្មែរ: ៥.១.កន្សោមនាម

៥.១.កន្សោមនាម
ជាកន្សោមដែលមាននាមជាបង្គោល។ គេអាចពង្រីកនាមដោយវិធីពីរយ៉ាងគឺ ពង្រីករណប និង ពង្រីកមិនរណប។
		
៥.១.១.ពង្រីករណប
ក្នុងពង្រីករណប គេអាចពង្រីកនាមដោយបន្ថែមៈ
-គុណនាមប្រក្រតី ឬ កន្សោមគុណនាម ( គុណបទ )
-កន្សោមមានធ្នាក់ ( កម្មបំពេញបទរបស់នាម )
-កន្សោមនាម ( ឧបបទ )
-ឃ្លារណប

ក-កន្សោមនាមរីកដោយគុណនាមប្រក្រតី ឬ កន្សោមគុណនាម
គុណនាមជាធាតុសំខាន់ តែពុំចាំបាច់របស់កន្សោមនាម។ វាសម្រាប់ចង្អុលបង្ហាញសភាព លក្ខណៈ ឬគុណភាពរបស់មនុស្ស សត្វ និងវត្ថុ

• ក្នុងកន្សោមនាម គុណនាមនៅខាងស្តាំនាម។
ឧទាហរណ៍៖	 ផ្ទះ ធំនេះ គោ ក្រហមនោះ បងស្រី វាពីរនាក់នោះ........។

• គុណនាមតែមួយអាចជាគុណបទរបស់នាមច្រើនបាន។
ឧទាហរណ៍៖ ខោ និង អាវ ក្រហម។ ស្បែកជើង និងស្រោមជើង ខ្មៅ។

• គុណនាមគុណបទនៅជាប់នឹងនាម គឺនៅចន្លោះនាមនិង កំណត់។
ឧទាហរណ៍៖ ខោ អោវ ក្រហម នេះ។
	
គេអាចពង្រីកគុណនាមដោយបន្ថែមគុណកិរិយា ឬបន្ថែមកន្សោមមានធ្នាក់ ។ ក្នុងកន្សោមនាម នាមអាចពង្រីកបានៈ
- កន → ន + កំ
ឧទាហរណ៍៖ ផ្ទះនេះ កុមារ ទាំងឡាយ មនុស្សណា.......។

- កន → ន + ព + កំ
ឧទាហរណ៍៖ ចេក ទុំល្អណាស់ មួយស្និតនេះ។

- ព → កគុ ( កន្សោមគុណនាម )
ឧទាហរណ៍៖ ទុំល្អណាស់។

- កគុ → គុ + កគុណ ( កន្សោមគុណកិរិយា )
ឧទាហរណ៍៖ ទុំ + ល្អណាស់។
	
- កគុណ→គុណ + គុណ( គុណកិរិយា )		
ឧទាហរណ៍៖ ល្អ + ណាស់។
	
-កំ → ចំ. ( ចំនួន ) + រន( រនាប់ ) + ច. ( ចង្អុល )
ឧទាហរណ៍៖ មួយ + ស្និត + នេះ។

ខ. កន្សោមនាមរីកដោយកម្មបំពេញបទ
ឧទាហរណ៍៖ 
សួនបន្លែ នៃផ្ទះចាស់មួយ។
-គោ របស់ជីតាខ្ញុំ។
-មួកមួយ របស់កម្មករម្នាក់។
កម្មបំពេញបទរបស់នាមពង្រីក ( របស់នាម )ដែលភ្ជាប់ទៅនឹងនាមដោយសារ ធ្នាក់ (នៃ ឬ របស់ )។

គ.កន្សោមនាមរីកដោយសារឧបបទ
ឧទាហរណ៍៖
- សុខ មិត្តខ្ញុំ ខំប្រឹងរៀនណាស់។
-អាលុក ឆ្កែសំ ជាសត្វឧស្សាហ៏។
-កញ្ញាសុជាតា អ្នកគ្រូយើង ចូលចិត្តម្ហូបខ្មែរ។
ដូចនេះនាមឧបបទសម្រាប់បញ្ជាក់ន័យរបស់នាមមួយទៀត ដោយសំដែងនូវ លក្ខណៈ មនុស្ស សត្វ ឬ វត្ថុ ដូចគ្នា។

ឃ. កន្សោមនាមរីកដោយសារឃ្លារណប
ឧទាហរណ៍៖
-សិស្ស ដែលខំរៀន តែងតែប្រឡងជាប់។
-កសិករ ដែលអស់កម្លាំង អង្គុយនៅស្ងៀមស្ងាត់។
-មាណពទីទ័លក្រនេះ មានពូថៅតែមួយគត់ ដែលជាមតិកដ៍ស្តុកស្តម្ភ។
-រថយន្តមួយគ្រឿង ដែលបងខ្ញុំទើបតែទិញពីប្រទេសជប៉ុន ជារថយន្តរបស់ក្រុមហ៊ុន តូយ៉ូតា។
		
៥.១.២.ពង្រីកមិនរណប
	
ក. កន្សោមនាម + ឈ្នាប់ + កន្សោមនាម
ឧទាហរណ៍៖
-បងប្រុសសំ និងបងស្រីសំ ទៅស្រែ។
-យុវ័ន និងយុវតីខ្មែរទាំងអស់ ជាកម្លាំងដ៍សកម្មរបស់ប្រទេសជាតិ។
-មាតា និងបិតា វាជា សមាជិត និងសមាជិកា នៃភូមិយើង។
	
ខ. កន្សោមនាមរីក + ឈ្នាប់ + កន្សោមនាមរីក
-កនរីក → កន + ព. រណប
-កនរីក → កន + កម្មបំពេញបទ
ឧទាហរណ៍៖ កូនរបស់ពូសុក និងកូនរបស់ពូសៅទៅសាលារៀន។

-កនរីកកន + គុណបទ
ឧទាហរណ៍៖ គាត់ទិញបន្ទាត់ ក្រហមមួយ និងប៊ិច ក្រហមមួយ។

- កនរីក → កន + ឧបបទ
ឧទាហរណ៍៖ ពូសុក កសិករភូមិត្នោត និង ពូសៅ កសិករភូមិអណ្តូង កំពង់ភ្ជូរស្រែ ជាមួយគ្នា។ 	

-កនរីក → កន + ឃ្នារណប
ឧទាហរណ៍៖ អាវស និង សំពត់ក្រហម ដែលខ្ញុំទើបនឹងទិញ ជាផលិតផល របស់ក្រុមហ៊ុនខ្មែរ។

គ. ពង្រីកនៃកន + ឈ្នាប់ + ពង្រីកនៃកន
ឧទាហរណ៍៖ 
- កុមារ ឧស្សាហ៏ និង ឈ្លាសវៃនេះ ប្រលងជាប់លេខ១។ ( ពង្រីកនៃ កន.  បែបគុណបទ)	
- កូន របស់ពូសំ និង មីងសួន ចេះគួរសមណាស់។ ( ពង្រីកនៃ កន. បែបកម្មបំពេញបទ)		
- សាន សិស្សថ្នាក់ទី៧ និង ជាជើងឯកខាងកីឡាបាល់ទាត់ បានរង្វាន់ លេខ២។    (ពង្រីកនៃ កន. បែបឧបបទ )
- សៀវភៅ ដែលគេស្រលាញ់ ហើយថែទាំបានល្អ ធើ្វឲ្យគេចូលចិត្តអានរាល់ថ្ងៃ (ពង្រីក នៃកន. បែបឃ្លារណប )
ភាសា និង​អក្សរ​ខ្មែរ: ៥.១.១.ពង្រីករណប

៥.១.១.ពង្រីករណប
ក្នុងពង្រីករណប គេអាចពង្រីកនាមដោយបន្ថែមៈ
-គុណនាមប្រក្រតី ឬ កន្សោមគុណនាម ( គុណបទ )
-កន្សោមមានធ្នាក់ ( កម្មបំពេញបទរបស់នាម )
-កន្សោមនាម ( ឧបបទ )
-ឃ្លារណប

ក-កន្សោមនាមរីកដោយគុណនាមប្រក្រតី ឬ កន្សោមគុណនាម
គុណនាមជាធាតុសំខាន់ តែពុំចាំបាច់របស់កន្សោមនាម។ វាសម្រាប់ចង្អុលបង្ហាញសភាព លក្ខណៈ ឬគុណភាពរបស់មនុស្ស សត្វ និងវត្ថុ

• ក្នុងកន្សោមនាម គុណនាមនៅខាងស្តាំនាម។
ឧទាហរណ៍៖	 ផ្ទះ ធំនេះ គោ ក្រហមនោះ បងស្រី វាពីរនាក់នោះ........។

• គុណនាមតែមួយអាចជាគុណបទរបស់នាមច្រើនបាន។
ឧទាហរណ៍៖ ខោ និង អាវ ក្រហម។ ស្បែកជើង និងស្រោមជើង ខ្មៅ។

• គុណនាមគុណបទនៅជាប់នឹងនាម គឺនៅចន្លោះនាមនិង កំណត់។
ឧទាហរណ៍៖ ខោ អោវ ក្រហម នេះ។
	
គេអាចពង្រីកគុណនាមដោយបន្ថែមគុណកិរិយា ឬបន្ថែមកន្សោមមានធ្នាក់ ។ ក្នុងកន្សោមនាម នាមអាចពង្រីកបានៈ
- កន → ន + កំ
ឧទាហរណ៍៖ ផ្ទះនេះ កុមារ ទាំងឡាយ មនុស្សណា.......។

- កន → ន + ព + កំ
ឧទាហរណ៍៖ ចេក ទុំល្អណាស់ មួយស្និតនេះ។

- ព → កគុ ( កន្សោមគុណនាម )
ឧទាហរណ៍៖ ទុំល្អណាស់។

- កគុ → គុ + កគុណ ( កន្សោមគុណកិរិយា )
ឧទាហរណ៍៖ ទុំ + ល្អណាស់។
	
- កគុណ→គុណ + គុណ( គុណកិរិយា )		
ឧទាហរណ៍៖ ល្អ + ណាស់។
	
-កំ → ចំ. ( ចំនួន ) + រន( រនាប់ ) + ច. ( ចង្អុល )
ឧទាហរណ៍៖ មួយ + ស្និត + នេះ។

ខ. កន្សោមនាមរីកដោយកម្មបំពេញបទ
ឧទាហរណ៍៖ 
សួនបន្លែ នៃផ្ទះចាស់មួយ។
-គោ របស់ជីតាខ្ញុំ។
-មួកមួយ របស់កម្មករម្នាក់។
កម្មបំពេញបទរបស់នាមពង្រីក ( របស់នាម )ដែលភ្ជាប់ទៅនឹងនាមដោយសារ ធ្នាក់ (នៃ ឬ របស់ )។

គ.កន្សោមនាមរីកដោយសារឧបបទ
ឧទាហរណ៍៖
- សុខ មិត្តខ្ញុំ ខំប្រឹងរៀនណាស់។
-អាលុក ឆ្កែសំ ជាសត្វឧស្សាហ៏។
-កញ្ញាសុជាតា អ្នកគ្រូយើង ចូលចិត្តម្ហូបខ្មែរ។
ដូចនេះនាមឧបបទសម្រាប់បញ្ជាក់ន័យរបស់នាមមួយទៀត ដោយសំដែងនូវ លក្ខណៈ មនុស្ស សត្វ ឬ វត្ថុ ដូចគ្នា។

ឃ. កន្សោមនាមរីកដោយសារឃ្លារណប
ឧទាហរណ៍៖
-សិស្ស ដែលខំរៀន តែងតែប្រឡងជាប់។
-កសិករ ដែលអស់កម្លាំង អង្គុយនៅស្ងៀមស្ងាត់។
-មាណពទីទ័លក្រនេះ មានពូថៅតែមួយគត់ ដែលជាមតិកដ៍ស្តុកស្តម្ភ។
-រថយន្តមួយគ្រឿង ដែលបងខ្ញុំទើបតែទិញពីប្រទេសជប៉ុន ជារថយន្តរបស់ក្រុមហ៊ុន តូយ៉ូតា។
ភាសា និង​អក្សរ​ខ្មែរ: ៥.១.២.ពង្រីកមិនរណប

៥.១.២.ពង្រីកមិនរណប
	
ក. កន្សោមនាម + ឈ្នាប់ + កន្សោមនាម
ឧទាហរណ៍៖
-បងប្រុសសំ និងបងស្រីសំ ទៅស្រែ។
-យុវ័ន និងយុវតីខ្មែរទាំងអស់ ជាកម្លាំងដ៍សកម្មរបស់ប្រទេសជាតិ។
-មាតា និងបិតា វាជា សមាជិត និងសមាជិកា នៃភូមិយើង។
	
ខ. កន្សោមនាមរីក + ឈ្នាប់ + កន្សោមនាមរីក
-កនរីក → កន + ព. រណប
-កនរីក → កន + កម្មបំពេញបទ
ឧទាហរណ៍៖ កូនរបស់ពូសុក និងកូនរបស់ពូសៅទៅសាលារៀន។

-កនរីកកន + គុណបទ
ឧទាហរណ៍៖ គាត់ទិញបន្ទាត់ ក្រហមមួយ និងប៊ិច ក្រហមមួយ។

- កនរីក → កន + ឧបបទ
ឧទាហរណ៍៖ ពូសុក កសិករភូមិត្នោត និង ពូសៅ កសិករភូមិអណ្តូង កំពង់ភ្ជូរស្រែ ជាមួយគ្នា។ 	

-កនរីក → កន + ឃ្នារណប
ឧទាហរណ៍៖ អាវស និង សំពត់ក្រហម ដែលខ្ញុំទើបនឹងទិញ ជាផលិតផល របស់ក្រុមហ៊ុនខ្មែរ។

គ. ពង្រីកនៃកន + ឈ្នាប់ + ពង្រីកនៃកន
ឧទាហរណ៍៖ 
- កុមារ ឧស្សាហ៏ និង ឈ្លាសវៃនេះ ប្រលងជាប់លេខ១។ ( ពង្រីកនៃ កន.  បែបគុណបទ)	
- កូន របស់ពូសំ និង មីងសួន ចេះគួរសមណាស់។ ( ពង្រីកនៃ កន. បែបកម្មបំពេញបទ)		
- សាន សិស្សថ្នាក់ទី៧ និង ជាជើងឯកខាងកីឡាបាល់ទាត់ បានរង្វាន់ លេខ២។    (ពង្រីកនៃ កន. បែបឧបបទ )
- សៀវភៅ ដែលគេស្រលាញ់ ហើយថែទាំបានល្អ ធើ្វឲ្យគេចូលចិត្តអានរាល់ថ្ងៃ (ពង្រីក នៃកន. បែបឃ្លារណប )
ភាសាកម្មវិធី

រូបភាពតូច|ស្តាំ|342px|ឧទាហរណ៍នៃក្រមដើមបានសរសេរក្នុងភាសាកម្មវិធីជ្វា ដែលនឹងចារឹកសារថា "Hello World!" (សួស្ដី ពិភពលោក!) ទៅកាន់ឆ្នេញបមាណីយនៅពេលវាត្រូវបានបកស្រាយ និងដើរដោយយន្តសិប្បនិម្មិត្តជ្វា។

ភាសាកម្មវិធីមួយគឺជាភាសាសាងឡើងមួយបែបដែលរចនាឡើងដើម្បីធ្វើទំនាក់ទំនងលំណែនាំមួយចំនួនទៅកាន់គ្រឿងយន្ត ជាពិសេសគណនូបករណ៍។ ភាសាកម្មវិធីត្រូវបានគេប្រើដើម្បីបង្កើតកម្មវិធីគ្រប់គ្រងទង្វើនៃយន្តមួយគ្រឿង រឺក៏ដើម្បីកំណត់បញ្ជាក់នព្វន្តវិធាននានា។

ភាសាកម្មវិធីដំបូងឡើយបានកើតមានឡើងមុនការបង្កើតគណនូបករណ៍តួលេខទៅទៀត ហើយត្រូវបានប្រើដើម្បីកំណត់ដៅនូវទង្វើរបស់គ្រឿងយន្តដូចជាកីតំបាញយន្ត និង ព្យែណូលេងឯង។Ettinger, James (2004) Jacquard's Web, Oxford University Press ភាសាកម្មវិធីផ្សេងៗរាប់ពាន់ភាសាត្រូវបានគេបង្កើតឡើង ភាគច្រើននៅក្នុងវិស័យគណនូបករណ៍ និងនៅតែមានការបង្កើតឡើងជាច្រើនភាសារៀងរាល់ឆ្នាំ។ ភាសាកម្មវិធីភាគច្រើនតំរូវឱ្យមានគណនាកម្មកំណត់ក្នុងទំរង់បញ្ជា (ឧ. ដំណើរនៃប្រតិបត្តិកម្មជាច្រើនស្ដែងឡើង) គ្រាដែលភាសាដទៃទៀតប្រើទំរង់ផ្សេងៗនៃយថាប្រភេទកម្មរបស់កម្មវិធីដូចជា ទំរង់ប្រកាស (ឧ. លទ្ធផលដែលចង់បានត្រូវបានកំណត់ជាក់លាក់ មិនមែនឱ្យវាសំរេចត្រូវធ្វើយ៉ាងណានោះទេ)។

ការពិពណ៌នាអំពីភាសាកម្មវិធីមួយជាធម្មតាត្រូវបានគេបំបែកទៅជាសមាសភាគពីរយ៉ាងតាមរយៈវាក្យសម្ព័ន្ធ (ទំរង់) និង សញ្ញាន័យវិទ្យា (អត្ថន័យ)។ ភាសាខ្លះត្រូវបានកំណត់ដោយឯកសារយថាប្រភេទកម្ម (ជាឧទាហរណ៍ ភាសាកម្មវិធី C ត្រូវបានគេកំណត់ដោយបមាណីយអ.ប.អ.) ខណៈដែលបណ្ដាភាសាដទៃទៀត (ដូចជា Perl) មានបូរណកម្មលប់ដែលត្រូវបានចាត់ទុកជាលំយោង។
ភាសាកម្មវិធី: Early developments

Early developments 
The first programming languages designed to communicate instructions to a computer were written in the 1950s. An early high-level programming language to be designed for a computer was Plankalkül, developed for the German Z3 by Konrad Zuse between 1943 and 1945. However, it was not implemented until 1998 and 2000.Rojas, Raúl, et al. (2000). "Plankalkül: The First High-Level Programming Language and its Implementation". Institut für Informatik, Freie Universität Berlin, Technical Report B-3/2000. (full text) 

John Mauchly's Short Code, proposed in 1949, was one of the first high-level languages ever developed for an electronic computer.Sebesta, W.S Concepts of Programming languages. 2006;M6 14:18 pp.44. ISBN 0-321-33025-0 Unlike machine code, Short Code statements represented mathematical expressions in understandable form. However, the program had to be translated into machine code every time it ran, making the process much slower than running the equivalent machine code.

រូបភាពតូច|300px|The Manchester Mark 1 ran programs written in Autocode from 1952.
At the University of Manchester, Alick Glennie developed Autocode in the early 1950s. A programming language, it used a compiler to automatically convert the language into machine code. The first code and compiler was developed in 1952 for the Mark 1 computer at the University of Manchester and is considered to be the first compiled high-level programming language.

The second autocode was developed for the Mark 1 by R. A. Brooker in 1954 and was called the "Mark 1 Autocode". Brooker also developed an autocode for the Ferranti Mercury in the 1950s in conjunction with the University of Manchester. The version for the EDSAC 2 was devised by D. F. Hartley of University of Cambridge Mathematical Laboratory in 1961. Known as EDSAC 2 Autocode, it was a straight development from Mercury Autocode adapted for local circumstances, and was noted for its object code optimisation and source-language diagnostics which were advanced for the time. A contemporary but separate thread of development, Atlas Autocode was developed for the University of Manchester Atlas 1 machine.

Another early programming language was devised by Grace Hopper in the US, called FLOW-MATIC. It was developed for the UNIVAC I at Remington Rand during the period from 1955 until 1959. Hopper found that business data processing customers were uncomfortable with mathematical notation, and in early 1955, she and her team wrote a specification for an English programming language and implemented a prototype.Hopper (1978) p. 16. The FLOW-MATIC compiler became publicly available in early 1958 and was substantially complete in 1959.Sammet (1969) p. 316 Flow-Matic was a major influence in the design of COBOL, since only it and its direct descendent AIMACO were in actual use at the time.Sammet (1978) p. 204. The language Fortran was developed at IBM in the mid '50s, and became the first widely used high-level general purpose programming language.
ភាសាកម្មវិធី: Refinement

Refinement 
The period from the 1960s to the late 1970s brought the development of the major language paradigms now in use, though many aspects were refinements of ideas in the very first Third-generation programming languages:
 APL introduced array programming and influenced functional programming.Richard L. Wexelblat: History of Programming Languages, Academic Press, 1981, chapter XIV.
 PL/I, originally called NPL, was designed in the early 1960s to incorporate the best ideas from FORTRAN and COBOL with block structures taken from ALGOL.
 In the 1960s, Simula was the first language designed to support object-oriented programming; in the mid-1970s, Smalltalk followed with the first "purely" object-oriented language.
 C was developed between 1969 and 1973 as a system programming language, and remains popular.. This comparison analyzes trends in number of projects hosted by a popular community programming repository. During most years of the comparison, C leads by a considerable margin; in 2006, Java overtakes C, but the combination of C/C++ still leads considerably.
 Prolog, designed in 1972, was the first logic programming language.
 In 1978, ML built a polymorphic type system on top of Lisp, pioneering statically typed functional programming languages.
Each of these languages spawned an entire family of descendants, and most modern languages count at least one of them in their ancestry.

The 1960s and 1970s also saw considerable debate over the merits of structured programming, and whether programming languages should be designed to support it. Edsger Dijkstra, in a famous 1968 letter published in the Communications of the ACM, argued that GOTO statements should be eliminated from all "higher level" programming languages.

The 1960s and 1970s also saw expansion of techniques that reduced the footprint of a program as well as improved productivity of the programmer and user. The card deck for an early 4GL was a lot smaller for the same functionality expressed in a 3GL deck.
ភាសាកម្មវិធី: Consolidation and growth

Consolidation and growth 
រូបភាពតូច|240px|ស្តាំ|A selection of textbooks that teach programming, in languages both popular and obscure. These are only a few of the thousands of programming languages and dialects that have been designed in history.

The 1980s were years of relative consolidation. C++ combined object-oriented and systems programming. The United States government standardized Ada, a systems programming language derived from Pascal and intended for use by defense contractors. In Japan and elsewhere, vast sums were spent investigating so-called "fifth generation" languages that incorporated logic programming constructs.Tetsuro Fujise, Takashi Chikayama, Kazuaki Rokusawa, Akihiko Nakase (December 1994). "KLIC: A Portable Implementation of KL1" Proc. of FGCS '94, ICOT Tokyo, December 1994. http://www.icot.or.jp/ARCHIVE/HomePage-E.html  KLIC is a portable implementation of a concurrent logic programming language KL1. The functional languages community moved to standardize ML and Lisp. Rather than inventing new paradigms, all of these movements elaborated upon the ideas invented in the previous decade.

One important trend in language design for programming large-scale systems during the 1980s was an increased focus on the use of modules, or large-scale organizational units of code. Modula-2, Ada, and ML all developed notable module systems in the 1980s, although other languages, such as PL/I, already had extensive support for modular programming. Module systems were often wedded to generic programming constructs.

The rapid growth of the Internet in the mid-1990s created opportunities for new languages. Perl, originally a Unix scripting tool first released in 1987, became common in dynamic websites. Java came to be used for server-side programming, and bytecode virtual machines became popular again in commercial settings with their promise of "Write once, run anywhere" (UCSD Pascal had been popular for a time in the early 1980s). These developments were not fundamentally novel, rather they were refinements to existing languages and paradigms, and largely based on the C family of programming languages.

Programming language evolution continues, in both industry and research. Current directions include security and reliability verification, new kinds of modularity (mixins, delegates, aspects), and database integration such as Microsoft's LINQ.

The 4GLs are examples of languages which are domain-specific, such as SQL, which manipulates and returns sets of data rather than the scalar values which are canonical to most programming languages. Perl, for example, with its 'here document' can hold multiple 4GL programs, as well as multiple JavaScript programs, in part of its own perl code and use variable interpolation in the 'here document' to support multi-language programming.Wall, Programming Perl ISBN 0-596-00027-8 p. 66
ភាសាកម្មវិធី: Static semantics

Static semantics 
The static semantics defines restrictions on the structure of valid texts that are hard or impossible to express in standard syntactic formalisms. For compiled languages, static semantics essentially include those semantic rules that can be checked at compile time. Examples include checking that every identifier is declared before it is used (in languages that require such declarations) or that the labels on the arms of a case statement are distinct.Michael Lee Scott, Programming language pragmatics, Edition 2, Morgan Kaufmann, 2006, ISBN 0-12-633951-1, p. 18–19 Many important restrictions of this type, like checking that identifiers are used in the appropriate context (e.g. not adding an integer to a function name), or that subroutine calls have the appropriate number and type of arguments, can be enforced by defining them as rules in a logic called a type system. Other forms of static analyses like data flow analysis may also be part of static semantics. Newer programming languages like Java and C# have definite assignment analysis, a form of data flow analysis, as part of their static semantics.
ភាសាកម្មវិធី: Dynamic semantics

Dynamic semantics 

Once data has been specified, the machine must be instructed to perform operations on the data. For example, the semantics may define the strategy by which expressions are evaluated to values, or the manner in which control structures conditionally execute statements. The dynamic semantics (also known as execution semantics) of a language defines how and when the various constructs of a language should produce a program behavior. There are many ways of defining execution semantics. Natural language is often used to specify the execution semantics of languages commonly used in practice. A significant amount of academic research went into formal semantics of programming languages, which allow execution semantics to be specified in a formal manner. Results from this field of research have seen limited application to programming language design and implementation outside academia.
ភាសាកម្មវិធី: Typed versus untyped languages

Typed versus untyped languages 
A language is typed if the specification of every operation defines types of data to which the operation is applicable, with the implication that it is not applicable to other types. For example, the data represented by "this text between the quotes" is a string. In most programming languages, dividing a number by a string has no meaning; most modern programming languages will therefore reject any program attempting to perform such an operation. In some languages the meaningless operation will be detected when the program is compiled ("static" type checking), and rejected by the compiler; while in others, it will be detected when the program is run ("dynamic" type checking), resulting in a run-time exception.

A special case of typed languages are the single-type languages. These are often scripting or markup languages, such as REXX or SGML, and have only one data type—most commonly character strings which are used for both symbolic and numeric data.

In contrast, an untyped language, such as most assembly languages, allows any operation to be performed on any data, which are generally considered to be sequences of bits of various lengths. High-level languages which are untyped include BCPL and some varieties of Forth.

In practice, while few languages are considered typed from the point of view of type theory (verifying or rejecting all operations), most modern languages offer a degree of typing. Many production languages provide means to bypass or subvert the type system, trading type-safety for finer control over the program's execution (see casting).
ភាសាកម្មវិធី: Static versus dynamic typing

Static versus dynamic typing 
In static typing, all expressions have their types determined prior to when the program is executed, typically at compile-time. For example, 1 and (2+2) are integer expressions; they cannot be passed to a function that expects a string, or stored in a variable that is defined to hold dates.

Statically typed languages can be either manifestly typed or type-inferred. In the first case, the programmer must explicitly write types at certain textual positions (for example, at variable declarations). In the second case, the compiler infers the types of expressions and declarations based on context. Most mainstream statically typed languages, such as C++, C# and Java, are manifestly typed. Complete type inference has traditionally been associated with less mainstream languages, such as Haskell and ML. However, many manifestly typed languages support partial type inference; for example, Java and C# both infer types in certain limited cases.Specifically, instantiations of generic types are inferred for certain expression forms. Type inference in Generic Java—the research language that provided the basis for Java 1.5's bounded parametric polymorphism extensions—is discussed in two informal manuscripts from the Types mailing list: Generic Java type inference is unsound (Alan Jeffrey, 17 December 2001) and Sound Generic Java type inference (Martin Odersky, 15 January 2002). C#'s type system is similar to Java's, and uses a similar partial type inference scheme.

Dynamic typing, also called latent typing, determines the type-safety of operations at run time; in other words, types are associated with run-time values rather than textual expressions. As with type-inferred languages, dynamically typed languages do not require the programmer to write explicit type annotations on expressions. Among other things, this may permit a single variable to refer to values of different types at different points in the program execution. However, type errors cannot be automatically detected until a piece of code is actually executed, potentially making debugging more difficult. Lisp, Perl, Python, JavaScript, and Ruby are dynamically typed.