কোড ইনডেন্টেশনের উত্স


31

কে কোড ইনডেন্টেশন চালু করেছিল, সেইসাথে এটি কখন এবং কোথায় চালু হয়েছিল তা জানতে আগ্রহী।

কোড অনুধাবন করার পক্ষে এটি এতটা সমালোচিত মনে হয় তবে এটি সর্বজনীন ছিল না। বেশিরভাগ ফোর্টরান এবং বেসিক কোডটি ছিল (কি?) ইন্ডেনডেন্ট ছিল এবং কোবলের ক্ষেত্রেও এটি একই রকম।

আমি নিশ্চিত যে আমি এমনকি পুরানো লিস্প কোডটি অবিচ্ছিন্ন, লাইন মোড়ানো পাঠ্য হিসাবে লেখা দেখেছি। এটিকে পার্স করার জন্য আপনাকে আপনার মাথায় বন্ধনীগুলি গণনা করতে হবে, এটি বুঝতে কোনও আপত্তি নেই।

তাহলে এত বড় উন্নতি কোথা থেকে এল? আমি এর উত্স সম্পর্কে কোন উল্লেখ কখনও দেখিনি।

এর ব্যবহারের আসল উদাহরণগুলি বাদ দিয়ে, আমি ইন্ডেন্টের মূল আলোচনাও খুঁজছি।


আমি নিশ্চিত নই যে এটির একক পয়েন্ট আছে। এছাড়াও, কিছু প্রাথমিক কোডের জন্য, স্পেসগুলি নিজেরাই গ্রহণ করা স্থানটি একটি সমস্যা হয়ে উঠত।
জ্যাক এইডলি 22'14

1
আসলে, ফরটারান অভিযুক্ত ছিল । প্রকারভেদে। এটি কলামগুলিতে বিছানো হয়েছিল, Cআপনি যদি মন্তব্য করে থাকেন তবে প্রথমটি চরিত্রের জন্য সংরক্ষিত ।
জোনাথন ল্যান্ড্রাম

কোডের অর্থগত অর্থ পরিবর্তনের জন্য ইনডেন্টেশন ব্যবহার করা হয় এমন ক্ষেত্রে বাদ দেওয়া (এটি হ'ল বদলগুলি এটিকে লুপগুলিতে বা একটি অংশ হিসাবে রাখবে if), ইন্ডেন্টেশন আসলে কোনও ভাষা বৈশিষ্ট্য নয়, এটি একটি আইডিই বৈশিষ্ট্য ( এবং সংকলকটিতে কিছুটা, শীর্ষস্থানগুলিকে অগ্রাহ্য করার জন্য)। @ জ্যাকের ডান - মূলত প্রোগ্রামগুলিতে কার্ডগুলিতে খোঁচা দেওয়া হয়েছিল, এবং স্টোরেজে আক্ষরিক অর্থে ইন্ডেন্টেশন উপস্থিত ছিল না (এবং সম্ভবত এটি এখন নাও হওয়া উচিত)। কলামার আরপিজি ইনডেন্টেশন ব্যবহার করে না (এবং আপনার কাছে কেবল লাইন প্রতি 20 ডলার অক্ষর বিনামূল্যে) তবে আইডিই আপনার জন্য কোডটি "নরম" করতে পারে।
ক্লকওয়ার্ক-মিউজিক

6
এই রাতারাতি সম্পর্কে চিন্তাভাবনা করে, আমার কাছে এটি ঘটে যে একটি অর্থবোধক ডিগ্রি ইন্ডেন্টেশন সম্ভবত প্রোগ্রামিংয়ের পূর্বাভাস দেয় । কম্পিউটার প্রোগ্রাম লেখার আগে নির্দেশের তালিকায় ইন্ডেন্টেশন সম্ভবত ব্যবহৃত হত। আমি একটি উদাহরণ খোঁজার চেষ্টা করছি।
জ্যাক এইডলি 23'14

@ ক্লকওয়ার্ক-মিউজিক ইন্ডেন্টেশন প্রায় 20 বছর পূর্বে ("একটি অঞ্চল", "বি অঞ্চল" ইত্যাদি ) কোবোলের একটি ভাষা বৈশিষ্ট্য ছিল ।
রস প্যাটারসন

উত্তর:


21

ইন্ডেন্টেড কোডের উত্স সম্ভবত ALGOL এ পাওয়া যাবে :

এএলজিএল কোড ব্লক এবং সেগুলি সীমিত করার জন্য beginএবং জোড়গুলি প্রবর্তন endকরেছিল এবং এটি প্রথম ভাষার ভাষাও ছিল যা শব্দাবলীর সুযোগ সহ নেস্টেড ফাংশন সংজ্ঞা প্রয়োগ করে।


এটি যুক্তিসঙ্গত মনে হচ্ছে, যদিও আমি ভাবছি যে লিস্পের অগ্রগতি সম্ভবত আগে না এসেছিল। যেভাবেই হোক আমি প্রকৃতপক্ষে ইনডেন্টেশন প্রবর্তনের বিষয়ে নির্দিষ্টকরণ পরে আছি।
ড্যানিয়েল মাহলার 22'14

4
@ ড্যানিয়েলমাহেলার - এলআইএসপি 1 প্রোগ্রামিং ম্যানুয়ালটি ব্রাউজ করুন এবং নিজের জন্য দেখুন। উদাহরণ কোডের কয়েকটি হ'ল ইন্টেন্টেড, তবে এটি সবচেয়ে ভাল pha উদাহরণ কোডটির বেশিরভাগটি ফ্লাশ বামে রয়েছে।
ডেভিড হামেন

@ ডেভিডহ্যামেন এটি অবশ্যই সবচেয়ে খারাপ টাইপরাইটারদের মধ্যে একজন হয়ে গেছে ... আপনি ভেবেছেন যে তারা কেবল পুরোটা হাতে লিখেছেন।
পানজিরক্রিসিস

6
আমি মনে করি না উদ্ধৃত পাঠ্যটি প্রকৃতপক্ষে ইনডেন্টেশনের ব্যবহার / অস্তিত্বকে সমর্থন করে । এটি বিভাগীয় কোডের জন্য সমর্থন। জাভা {}ব্লকগুলি সীমিত করতে ব্র্যাকেট ( ) ব্যবহার করে এবং আপনি নেস্টেড ফাংশনগুলি সংজ্ঞায়িত করতে পারেন তবে কোডটি আসলে ইন্টেন্টেড কিনা তা সম্পর্কে আমাকে কিছুই জানায় না।
ক্লকওয়ার্ক-মিউজিক

12

এলএনএসপি এবং ALGOL- তে ইনডেন্টড কোড অবশ্যই 1958-এর আগে উপস্থিত হয়েছিল, কারণ এটি উপস্থিত ছিল - তবে সর্বব্যাপী নয়। আমি সনাক্ত করতে পারে এমন প্রথমটি হল কমটার যা 1957 সালে প্রবর্তিত হয়েছিল, যদিও আমি কেবল 1960 ম্যানুয়ালটি দেখতে পাচ্ছি (পৃষ্ঠা 90ish দেখুন)। এই ইন্ডেন্টেশনটি আধুনিক ধারণার চেয়ে আলাদা কারণ যেহেতু কম্ট্রান ALGOL থেকে বেশিরভাগ ভাষার ব্লক কাঠামোর অভাব রয়েছে তবে আমি মনে করি এটি এখনও গণনা করা উচিত।

আমি সন্দেহ করি যে এটি আসলে প্রথম উদাহরণ নয় তবে আমি এর আগে কোনও সনাক্ত করতে পারি না।

আপডেট করা হয়েছে

আমার কাছে এটি ঘটেছে যে একটি অর্থবোধক ডিগ্রি ইন্ডেন্টেশন সম্ভবত প্রোগ্রামিংয়ের পূর্বাভাস দেয়। কম্পিউটার প্রোগ্রাম লেখার আগে নির্দেশের তালিকায় इंडেন্টেশন সম্ভবত ব্যবহৃত হত। দুর্ভাগ্যক্রমে আমি এর কোনও ভাল উদাহরণ পাই না।


-1

রস প্যাটারসনের মন্তব্যের উপর একটি বিস্তৃতি - সিওবিওএল সংকলক (বা কমপক্ষে আইবিএমের সংকলক, যা আমি আমার প্রাক-ওপেন সিস্টেমের কেরিয়ারে ব্যবহার করেছি) জোর করে ইনডেন্টেশন ("এ" এবং "বি" ক্ষেত্রগুলি উল্লেখ করেছেন)। এই অঞ্চলগুলিতে থাকা উপাদানগুলির মধ্যে যদি কোনওটি ঠিকঠাক না স্থাপন করা হয় তবে আপনার কোড সংকলনে ব্যর্থ হবে। যাইহোক, এর বাইরে কোনও নির্দিষ্ট ইন্ডেন্টেশন প্রয়োজন ছিল না - এটি অন্য বিকাশকারীর কোড সংশোধন করার সময় প্রায়শই আকস্মিক আকার ধারণ করে, যার ইন্ডেন্টেশন শৈলীটি আপনার চেয়ে আলাদা ছিল - শিষ্টাচারটি আপনাকে পরামর্শ দেয় যে উপস্থিত প্যাটার্নগুলি অনুসরণীয়দের মধ্যে সুরক্ষিত শান্তি হিসাবে অনুসরণ করা উচিত; তদ্ব্যতীত, একই উত্সে বিভিন্ন শৈলী দেখতে তীব্র হবে, প্রায় টেট্রিস-মত চেহারাতে appearance

বহু বছর ধরে আমি সিওবিওএল এবং এর প্রবর্তন সম্পর্কে চিন্তাভাবনা করেছি - প্রশ্ন জিজ্ঞাসা করার জন্য এবং অতীতে একটু ভ্রমণ করার জন্য ধন্যবাদ!

মার্টি

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.