সবচেয়ে নিম্নস্তরের প্রোগ্রামিং ভাষা হল, প্রথমত, যান্ত্রিক কোড বা মেশিন কোড হল যা প্রোগ্রামের ইনস্ট্রাকশনগুলোকে সরাসরি বাইনারি অঙ্কের সারি হিসেবে দেখায় (যে রূপটি কম্পিউটার প্রসেসর সরাসরি পাঠ করতে পারে); এবং দ্বিতীয়ত, এসেম্বলি ভাষা, যেখানে ইনস্ট্রাকশনগুলো সহজবোধ্য নামে এবং মেমরি এড্রেস প্রতীকের মাধ্যমে চিহ্নিত। এদেরকে প্রথম- এবং দ্বিতীয় প্রজন্মের প্রোগ্রামিং ভাষা হিসেবে চিহ্নিত করা হয়।

প্রোগ্রামিং ইতিহাসের শুরুতে প্রোগ্রামসমূহ তুলনামূলক সরল ছিল, এবং সরাসরি বাইনারি যান্ত্রিক কোডে প্রোগ্রাম লেখা হত। কিন্তু প্রোগ্রামের জটিলতা বৃদ্ধির সঙ্গে সঙ্গে সরাসরি মেশিন কোডে কাজ করা কঠিন হয়ে পড়ে। এর প্রেক্ষিতে ১৯৬০ দশকে প্রাথমিক এসেম্বলি ভাষাসমূহ উদ্ভাবন করা হয়। এতে ম্যাক্রো রচনা (সংক্ষিপ্ত কোড প্রতীককে জটিলতর প্রোগ্রামিং গঠন দ্বারা প্রতিস্থাপন করার কৌশল), প্রাক-প্রক্রিয়াকরণ, এবং প্রোগ্রামিং প্রবাহ নিয়ন্ত্রণের সুবিধা ছিল। এসব সুবিধার মাধ্যমে ব্যাপকমা্ত্রায় কোডের পুনর্ব্যবহার এবং হার্ডওয়্যার থেকে বিচ্ছিন্ন কোড রচনার সুযোগ তৈরি হয়। ফলে এসেম্বলি দিয়ে পূর্বের চেয়ে অত্যন্ত জটিলতর প্রোগ্রাম তৈরি করা সহজসাধ্য হয়, যা উন্নততর প্রোগ্রামিং ভাষা রচনা এবং কম্পিউটিংয়ের প্রগতিতে সরাসরি প্রভাব রেখেছে। বিভিন্ন অতীব জরুরি ক্ষেত্রে এবং বিশেষত এমবেডেড সিস্টেমসমূহে এখন এসেম্বলি কোড বহুল ব্যবহৃত হয়, কারণ এসেম্বলি ভাষায় কম্পিউটারের মেমরি, হার্ডওয়্যার প্রভৃতির সরাসরি যান্ত্রিক নিয়ন্ত্রণ নেওয়া যায়।

ইতিহাস
বহু-প্যারাডাইম ভাষা
যান্ত্রিক কোড
অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং