বিষয়বস্তুতে চলুন

পিএল/ওয়ান

উইকিপিডিয়া, মুক্ত বিশ্বকোষ থেকে
পিএল/ওয়ান
প্যারাডাইমপ্রসিডিউরাল, ইম্পারেটিভ,রস্ট্রাকচার্ড
নকশাকারআইবিএম, শেয়ার ল্যাঙ্গুয়েজ কমিটি, আইএসও
প্রথম প্রদর্শিত১৯৬৪; ৬১ বছর আগে (1964)
ওয়েবসাইটwww.ibm.com/products/pli-compiler-zos
যার দ্বারা প্রভাবিত
কবোল,ফোরট্রান, অ্যালগল ৬০
যাকে প্রভাবিত করেছে
কন্ট্রোল ল্যাঙ্গুয়েজ, পিএল/এম, পিএল/এস, পিএল-৬, পিএল.৮, রেক্স, এসএএস

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

পিএল/ওয়ান-এর এএনএসআই মান, এক্স৩.৫৩-১৯৭৬, ১৯৭৬ সালে প্রকাশিত হয়।

পিএল/ওয়ান-এর প্রধান ক্ষেত্রগুলো হলো ডেটা প্রসেসিং, সংখ্যাতাত্ত্বিক গণনা, বৈজ্ঞানিক কম্পিউটিং এবং সিস্টেম প্রোগ্রামিং। এটি পুনরাবৃত্তি, স্ট্রাকচারড প্রোগ্রামিং, লিংকড ডাটা স্ট্রাকচার পরিচালনা, ফিক্সড-পয়েন্ট অরিথমেটিক, ফ্লোটিং-পয়েন্ট, কমপ্লেক্স অরিথমেটিক, ক্যারেক্টার স্ট্রিং পরিচালনা এবং বিট স্ট্রিং পরিচালনাকে সমর্থন করে। ভাষার সিনট্যাক্স ইংরেজির মতো এবং জটিল ডেটা ফরম্যাট বর্ণনা করার জন্য উপযুক্ত, যেখানে এগুলো যাচাই এবং পরিচালনার জন্য বিস্তৃত ফাংশন ব্যাবহার করা যায়।

কোডিং এর উদাহারণ

[সম্পাদনা]

পিএল/ওয়ান প্রোগ্রামিং ভাষার কোডিং এর উদাহারণ:

/* Declare the variable */
DECLARE Year FIXED;

/* Assign a value to the variable */
Year = 2007;

/* Conditional check and output */
IF Year >= 2006 THEN
    PUT LIST("অনিকেত প্রান্তর আর্টসেলের সবচে জোস গান");
ELSE
    PUT LIST("ভুল জন্ম আর্টসেলের সবচে জোস গান");

আউটপুট:

>> অনিকেত প্রান্তর আর্টসেলের সবচে জোস গান

প্রাথমিক ইতিহাস

[সম্পাদনা]

১৯৫০ এবং ১৯৬০-এর দশকের শুরুতে, ব্যবসায়িক এবং বৈজ্ঞানিক ব্যবহারকারীরা বিভিন্ন কম্পিউটার হার্ডওয়্যারের জন্য আলাদা প্রোগ্রামিং ভাষা ব্যবহার করতেন। ব্যবসায়িক ব্যবহারকারীরা অটোকোডার থেকে কমট্রান এবং পরবর্তীতে কোবোল-এ অগ্রসর হন, অন্যদিকে বৈজ্ঞানিক ব্যবহারকারীরা ফোরট্রান, অ্যালগল, জর্জ এবং অন্যান্য ভাষায় প্রোগ্রাম করতেন। আইবিএম সিস্টেম/৩৬০[] (১৯৬৪ সালে ঘোষণা এবং ১৯৬৬ সালে সরবরাহ) উভয় ব্যবহারকারীর জন্য একটি সাধারণ মেশিন আর্কিটেকচার হিসেবে ডিজাইন করা হয়, যা বিদ্যমান সমস্ত আইবিএম আর্কিটেকচার প্রতিস্থাপন করে। একইভাবে, আইবিএম চেয়েছিল একটি একক প্রোগ্রামিং ভাষা যা সমস্ত ব্যবহারকারীর প্রয়োজন মেটাবে। তারা আশা করেছিল যে ফোরট্রান বাণিজ্যিক প্রোগ্রামারদের প্রয়োজনীয় বৈশিষ্ট্য অন্তর্ভুক্ত করতে সম্প্রসারিত করা যেতে পারে।

অক্টোবর ১৯৬৩-এ একটি কমিটি গঠিত হয়[] যা মূলত নিউ ইয়র্কের তিনজন আইবিএম কর্মী এবং বৈজ্ঞানিক ব্যবহারকারীদের গ্রুপ শেয়ার-এর তিন সদস্য নিয়ে গঠিত হয়। কমিটি ফোর্ট্রান-এর এই সম্প্রসারণের প্রস্তাব দিয়েছিল। কিন্তু ফোর্ট্রান-এর সীমাবদ্ধতার কারণে এটি সম্ভব হয়নি এবং তারা অ্যালগল-ভিত্তিক একটি নতুন প্রোগ্রামিং ভাষা ডিজাইন শুরু করে, যার নাম ছিল এনপিএল।

এই নামটি যুক্তরাজ্যের ন্যাশনাল ফিজিক্যাল ল্যাবরেটরোরেটরন্যাশনাল ফিসিক্যাল ল্যাবরেটরি) সঙ্গে দ্বন্দ্ব তৈরি হয় এবং[] এটি সংক্ষেপে এমপিপিএল (মাল্টিপারপাস প্রোগ্রামিং ল্যাঙ্গুয়েজ) নামকরণ করা হয়। ১৯৬৫ সালে এর নাম পরিবর্তন করে পিএল/ওয়ান রাখা হয় (যেখানে আই একটি রোমান সংখ্যা)। এর প্রথম সংজ্ঞা ১৯৬৪ সালের এপ্রিল মাসে প্রকাশিত হয়।[][]

আইবিএম এনপিএল-কে একটি সূচনা পয়েন্ট হিসেবে গ্রহণ করে এবং এর নকশা এমন একটি স্তরে উন্নীত করে যেখানে প্রথম কম্পাইলার লেখা সম্ভব হয়। NPL-এর সংজ্ঞা পরিধি এবং বিশদ বিবরণে অসম্পূর্ণ ছিল।[]

পিএল/ওয়ান ভাষার নিয়ন্ত্রণ[] প্রাথমিকভাবে নিউ ইয়র্ক প্রোগ্রামিং সেন্টারের হাতে এবং পরে আইবিএম ইউকে ল্যাবরেটরি, হার্সলিতে স্থানান্তরিত হয়।

শেয়ার এবং গাইড ব্যবহারকারী গ্রুপগুলো ভাষা সম্প্রসারণে জড়িত ছিল এবং তাদের পিএলআই প্রকল্পগুলোর মাধ্যমে আইবিএমের ভাষা নিয়ন্ত্রণ প্রক্রিয়ায় ভূমিকা রাখে। একটি বড় ভাষা সংজ্ঞায়িত করার অভিজ্ঞতা পিএল/ওয়ান-এর একটি আনুষ্ঠানিক সংজ্ঞার প্রয়োজনীয়তা দেখায়। ১৯৬৭ সালে আইবিএম ল্যাবরেটরি ভিয়েনায় একটি প্রকল্প চালু করা হয়, যার লক্ষ্য ছিল একটি স্পষ্ট এবং সম্পূর্ণ সংজ্ঞা তৈরি করা।[]

এটি পরবর্তীতে উন্নয়নের জন্য বৃহৎ আকারের প্রথম আনুষ্ঠানিক পদ্ধতিগুলোর একটি, ভিয়েনা ডেভেলপমেন্ট মেথড (ভিডিএম)-এর দিকে নিয়ে যায়।

ফ্রেড ব্রুকস পিএল/ওয়ান-এ CHARACTER ডেটা টাইপ নিশ্চিত করার জন্য কৃতিত্ব পেয়েছেন।[১০]

ভাষাটি প্রথমবার বিশদভাবে ১৯৬৫ সালে নিউ ইয়র্কে লেখা ম্যানুয়াল "পিএল/ওয়ান ল্যাঙ্গুয়েজ স্পেসিফিকেশন. সি২৮-৬৫৭১"-এ নির্ধারিত হয় এবং পরে ১৯৬৭ সালে হার্সলিতে লেখা "পিএল/ওয়ান ল্যাঙ্গুয়েজ স্পেসিফিকেশন. জিওয়াই৩৩-৬০০৩"-এর মাধ্যমে প্রতিস্থাপিত হয়। আইবিএম ৬০-এর দশকের শেষ এবং ৭০-এর দশকের শুরুতে পিএল/ওয়ান উন্নয়ন চালিয়ে যায় এবং এটি জিওয়াই৩৩–৬০০৩ ম্যানুয়ালে প্রকাশ করে। এই ম্যানুয়ালগুলোমাল্টিক্স গ্রুপ এবং অন্যান্য প্রাথমিক বাস্তবায়নকারীদের দ্বারা ব্যবহৃত হয়।

প্রথম কম্পাইলার ১৯৬৬ সালে সরবরাহ করা হয়। পিএল/ওয়ান-এর স্ট্যান্ডার্ড ১৯৭৬ সালে অনুমোদিত হয়।

লক্ষ্য ও নীতিমালা

[সম্পাদনা]

পিএল/ওয়ান-এর লক্ষ্যসমূহ ভাষাটির প্রাথমিক উন্নয়ন চলাকালীন সময়ে বিকশিত হয়। কোবোল-এর রেকর্ড হ্যান্ডলিং এবং রিপোর্ট লেখার সাথে প্রতিযোগিতার জন্য এটি অপরিহার্য ছিল। ভাষাটির কার্যকারিতা বিস্তৃত হয়ে সিস্টেম প্রোগ্রামিং এবং ইভেন্ট-চালিত প্রোগ্রামিং-এর অন্তর্ভুক্ত হয়।[১১]

পিএল/ওয়ান-এর অতিরিক্ত লক্ষ্য ছিল:[]

  • Fortran-এর সাথে প্রতিযোগিতামূলক কম্পাইল করা কোডের পারফরম্যান্স (যদিও এটি অর্জিত হয়নি)[তথ্যসূত্র প্রয়োজন]
  • নতুন হার্ডওয়্যার এবং নতুন অ্যাপ্লিকেশন এলাকাগুলোর জন্য এক্সটেনসিবিলিটি
  • প্রোগ্রামিং প্রক্রিয়ার উন্নত উৎপাদনশীলতা, প্রোগ্রামারের কাজ কমিয়ে কম্পাইলারের উপর নির্ভরশীলতা বাড়ানো
  • ক্রস-প্ল্যাটফর্ম সফটওয়্যার মেশিন নিরপেক্ষতা প্রধান কম্পিউটার হার্ডওয়্যার এবং অপারেটিং সিস্টেমে কার্যকরভাবে কাজ করার জন্য

এই লক্ষ্য অর্জনের জন্য, পিএল/ওয়ান সমসাময়িক ভাষাগুলো থেকে ধারণা গ্রহণ করে এবং নতুন বৈশিষ্ট্য যোগ করে একটি সংক্ষিপ্ত এবং পাঠযোগ্য সিনট্যাক্স নিয়ে আসে। ভাষার বৈশিষ্ট্য এবং নীতিগুলো পিএল/ওয়ান-এর চরিত্র তৈরি করে এবং এর লক্ষ্য পূরণে গুরুত্বপূর্ণ ভূমিকা পালন করে:

  • ব্লক স্ট্রাকচার, অ্যালগল ৬০-এর মতো অন্তর্নিহিত অর্থ সহ (যেমন পুনরাবৃত্তি); কল বাই রেফারেন্স ব্যবহার করে আর্গুমেন্ট পাস করা এবং প্রয়োজন হলে ডামি ভেরিয়েবল ব্যবহার করে কল বাই ভ্যালু।
  • বিস্তৃত গণনামূলক ডেটা টাইপ, প্রোগ্রাম নিয়ন্ত্রণ ডেটা টাইপ এবং ডেটা স্ট্রাকচারের ধরন (স্ট্রং টাইপিং)।
  • অ্যারে এবং স্ট্রিং-এর জন্য ডায়নামিক এক্সটেন্ট এবং প্রোসিডিউর প্যারামিটার দ্বারা এক্সটেন্ট উত্তরাধিকার।
  • এক্সপ্রেশন, ডিক্লারেশন এবং স্টেটমেন্টের জন্য সংক্ষিপ্ত সিনট্যাক্স, সংক্ষিপ্ত রূপ ব্যবহারযোগ্য। ৬০ টি গ্লিফ সম্বলিত ক্যারেক্টার সেটের জন্য উপযুক্ত এবং ৪৮ টিতে সংক্ষিপ্তযোগ্য।
  • স্টেটমেন্ট, অপশন এবং ডিক্লারেশনে ডিফল্টের বিস্তৃত কাঠামো, যা জটিলতা আড়াল করে এবং ভাষার সম্প্রসারণকে সহজ করে।
  • শক্তিশালী পুনরাবৃত্তিমূলক প্রক্রিয়াকরণ এবং স্ট্রাকচার্ড প্রোগ্রামিং-এর জন্য সমর্থন।
  • কোনো রিজার্ভড ওয়ার্ড না রাখা (যদিও DATE এবং TIME নামগুলো শুরুতে সমস্যা করেছিল)। নতুন অ্যাট্রিবিউট, স্টেটমেন্ট এবং স্টেটমেন্ট অপশন পিএল/ওয়ান-এ যোগ করা যেতে পারে বিদ্যমান প্রোগ্রাম অবৈধ না করে। এমনকি IF, THEN, ELSE, এবং DO-ও রিজার্ভড ছিল না।[১২]
  • অর্থোগোনালিটি: প্রতিটি সক্ষমতা অন্য সক্ষমতার থেকে স্বাধীন হওয়া এবং যেকোনো প্রাসঙ্গিক স্থানে একত্রিত করার উপযোগী হওয়া। এটি ভাষাটিকে "বৃহৎ" করে তোলে।[স্পষ্টকরণ প্রয়োজন]
  • ব্যতিক্রম হ্যান্ডলিং-এর মাধ্যমে রান টাইমে ব্যতিক্রমীয় অবস্থার নিয়ন্ত্রণ এবং আটকানোর ক্ষমতা।
  • প্রোগ্রামগুলোকে আলাদা কম্পাইলযোগ্য অংশে বিভক্ত করা। বিস্তৃত কম্পাইল-টাইম সুবিধাগুলো (ম্যাক্রো) ব্যবহার করে সোর্স কোডের অংশগুলো সম্পূর্ণ প্রোগ্রামে পরিণত করা।
  • ভাষার সাথে সংহত ডিবাগিং সুবিধা।

ভাষার সারাংশ

[সম্পাদনা]

পিএল/ওয়ান ভাষাটি এমনভাবে ডিজাইন করা হয়েছে যাতে এটি সমস্ত প্রোগ্রামারের প্রয়োজন মেটাতে সক্ষম হয়, ভাষাটি যেকোনো সমস্যায় প্রয়োগ করা হোক না কেন।[১৩] এই সারাংশ এএনএসআই পিএল/ওয়ান[১৪] এবং এএনএসআই পিএল/ওয়ান জেনারেল পারপাস সাবসেট স্ট্যান্ডার্ড General-Purpose Subset Standard থেকে নেওয়া হয়েছে।[১৫]

একটি পিএল/ওয়ান প্রোগ্রাম একাধিক প্রোসিডিউর নিয়ে গঠিত, প্রতিটি প্রোসিডিউর বিবৃতিগুলোর একটি ক্রম হিসেবে লেখা হয়। %INCLUDE কন্সট্রাক্টটি প্রোগ্রাম অনুবাদের সময় অন্যান্য উৎস থেকে পাঠ্য অন্তর্ভুক্ত করতে ব্যবহৃত হয়। সমস্ত স্টেটমেন্ট টাইপ এখানে সংক্ষিপ্তভাবে উপস্থাপন করা হয়েছে, যা ভাষার একটি ওভারভিউ দেয় (স্ট্যান্ডার্ড এই গঠন ব্যবহার করে)।

শ্রেণি স্টেটমেন্ট
গঠনমূলক PROCEDURE (বা PROC)
ENTRY
BEGIN
DO
END
ঘোষণামূলক DECLARE (বা DCL)
DEFAULT (বা DFT)
FORMAT
নিয়ন্ত্রণ প্রবাহ CALL
IF
SELECT
GO TO
RETURN
STOP
শূন্য স্টেটমেন্ট
শ্রেণি স্টেটমেন্ট
বিঘ্ন হ্যান্ডলিং ON
SIGNAL
REVERT
স্টোরেজ ALLOCATE (বা ALLOC)
FREE
অ্যাসাইনমেন্ট স্টেটমেন্ট
ইনপুট/আউটপুট OPEN
CLOSE
স্ট্রিম ইনপুট/আউটপুট GET
PUT
রেকর্ড ইনপুট/আউটপুট READ
WRITE
REWRITE
LOCATE
DELETE

(মাল্টি-টাস্কিং এবং পিএল/ওয়ান প্রিপ্রসেসরের মতো বৈশিষ্ট্য স্ট্যান্ডার্ডে নেই, তবে এটি পিএল/ওয়ান এফ কম্পাইলার এবং কিছু অন্যান্য বাস্তবায়নে সমর্থিত। এটি ভাষার বিকাশ বিভাগে আলোচনা করা হয়েছে।)

নামগুলো নিম্নলিখিত ডেটা টাইপগুলোর প্রতিনিধিত্ব করতে ডিক্লেয়ার করা যেতে পারে, হয় একক মান হিসেবে বা অ্যারে আকারে, যেখানে প্রতিটি মাত্রার জন্য লোয়ার-বাউন্ড এবং আপার-বাউন্ড থাকে, বা স্ট্রাকচারের আকারে (নেস্টেড স্ট্রাকচার, অ্যারে এবং স্কেলার ভেরিয়েবলের সমন্বয়ে):

  • Arithmetic (বিস্তারিত নিচে)
  • CHARACTER
  • PICTURE for Arithmetic data
  • PICTURE for Character data
  • AREA
  • BIT
  • ENTRY
  • FILE
  • FORMAT
  • LABEL
  • OFFSET
  • POINTER

Arithmetic টাইপে নিম্নলিখিত বৈশিষ্ট্য রয়েছে:

  • একটি বেস (BINARY বা DECIMAL), এবং
  • একটি স্কেল (FIXED বা FLOAT), এবং
  • একটি মোড (REAL বা COMPLEX), এবং
  • একটি PRECISION (ডিজিট সংখ্যা, এবং নির্দিষ্ট বিন্দু সংখ্যার জন্য একটি স্কেল ফ্যাক্টর)

Picture-for-arithmetic টাইপের বেস, স্কেল, প্রিসিশন এবং স্কেল ফ্যাক্টর picture-specification-এ এনকোড করা থাকে। মোডটি আলাদাভাবে নির্ধারিত হয় এবং picture-specification উভয় রিয়াল এবং ইমাজিনারি অংশে প্রয়োগ করা হয়।

মানগুলো নির্দিষ্ট অপারেশন এবং বিল্টইন ফাংশন ব্যবহার করে লেখা এক্সপ্রেশন দ্বারা গণনা করা হয়। এগুলো একক মানের পাশাপাশি অ্যাগ্রিগেটেও প্রয়োগ করা যায়। ব্যবহারকারী-নির্ধারিত প্রোসিডিউরগুলো একইভাবে অ্যাগ্রিগেট এবং একক মানের ওপর কাজ করতে পারে এবং সেগুলো রিটার্ন করতে পারে। অ্যাসাইনমেন্ট স্টেটমেন্ট এক বা একাধিক ভেরিয়েবলে মান অ্যাসাইন করে।

পিএল/ওয়ান-এ কোনো রিজার্ভড ওয়ার্ড নেই। একটি স্টেটমেন্ট সেমিকোলন দিয়ে শেষ হয়। স্টেটমেন্টের সর্বোচ্চ দৈর্ঘ্য নির্ধারিত হয় বাস্তবায়ন অনুযায়ী। কমেন্ট প্রোগ্রামের যেকোনো স্থানে উপস্থিত হতে পারে যেখানে স্পেস অনুমোদিত এবং এটি ফরওয়ার্ড স্ল্যাশ, অ্যাস্টেরিক্স দিয়ে শুরু হয় এবং অ্যাস্টেরিক্স, ফরওয়ার্ড স্ল্যাশ দিয়ে শেষ হয় (যেমন: /* This is a comment. */)।

স্টেটমেন্টগুলোর আগে লেবেল-প্রিফিক্স থাকতে পারে, যা এন্ট্রি নাম (ENTRY এবং PROCEDURE স্টেটমেন্ট) বা লেবেল নাম পরিচয় করিয়ে দেয়। এটি একটি কন্ডিশন প্রিফিক্সও থাকতে পারে যা একটি গণনামূলক শর্ত সক্রিয় বা নিষ্ক্রিয় করে (যেমন: (NOSIZE))। এন্ট্রি এবং লেবেল নামগুলো একক পরিচয় বা সাবস্ক্রিপ্ট লিস্টসহ পরিচয় হতে পারে (যেমন: L(12,2):A=0;)।

একটি স্টেটমেন্টের ক্রম একটি DO স্টেটমেন্ট দ্বারা শুরু এবং END স্টেটমেন্ট দ্বারা শেষ হলে একটি "গ্রুপ" হয়ে যায়। গ্রুপগুলো নেস্টেড গ্রুপ এবং বিগিন ব্লক অন্তর্ভুক্ত করতে পারে। IF স্টেটমেন্ট একটি গ্রুপ বা একক স্টেটমেন্টকে THEN অংশ এবং ELSE অংশ হিসেবে নির্ধারণ করে। গ্রুপটি পুনরাবৃত্তির একক।

বিগিন ব্লক (BEGIN; stmt-list END;) ব্লকের জন্য স্থানীয় নাম এবং অভ্যন্তরীণ প্রোসিডিউরের জন্য ডিক্লারেশন অন্তর্ভুক্ত করতে পারে। একটি প্রোসিডিউর PROCEDURE স্টেটমেন্ট দিয়ে শুরু হয় এবং END স্টেটমেন্ট দিয়ে গঠনগতভাবে শেষ হয়। একটি প্রোসিডিউরের দেহে ব্লক, গ্রুপ এবং স্টেটমেন্টের ক্রম থাকে এবং প্রোসিডিউরের জন্য স্থানীয় নাম এবং প্রোসিডিউরের বাইরের EXTERNAL নামের জন্য ডিক্লারেশন অন্তর্ভুক্ত থাকে।

একটি ON-ইউনিট হল একটি একক স্টেটমেন্ট বা স্টেটমেন্টের একটি ব্লক, যা একটি বা একাধিক শর্ত ঘটলে কার্যকর করার জন্য লেখা হয়।

      1. একটি কম্পিউটেশনাল শর্ত:
  • CONVERSION (CONV)
  • FIXEDOVERFLOW (FOFL)
  • OVERFLOW (OFL)
  • SIZE
  • STRINGRANGE (STRG)
  • STRINGSIZE (STRZ)
  • SUBSCRIPTRANGE (SUBRG)
  • UNDERFLOW (UFL)
  • ZERODIVIDE (ZDIV)
      1. একটি ইনপুট/আউটপুট শর্ত:
  • ENDFILE(file)
  • ENDPAGE(file)
  • KEY(file)
  • NAME(file)
  • RECORD(file)
  • TRANSMIT(file)
  • UNDEFINEDFILE(file) (UNDF)
      1. অন্যান্য শর্ত:
  • AREA, CONDITION (identifier), ERROR, FINISH
      1. পরিচিতি ঘোষণার বৈশিষ্ট্য:

একটি পরিচিতির ঘোষণায় নিম্নলিখিত বৈশিষ্ট্যগুলো থাকতে পারে (তবে এগুলো পারস্পরিকভাবে সামঞ্জস্যপূর্ণ হতে হবে):

ডেটা বৈশিষ্ট্য ইনপুট/আউটপুট বৈশিষ্ট্য অন্যান্য বৈশিষ্ট্য
ALIGNED DIRECT AUTOMATIC বা AUTO
AREA[(area-size)] ENVIRONMENT(options) বা ENV... BASED[(reference)]
BINARY [(precision)] বা BIN... INPUT BUILTIN
BIT [(maximum-length)] KEYED CONDITION বা COND
CHARACTER[(maximum-length)] বা CHAR... OUTPUT CONSTANT
COMPLEX [(precision)] বা CPLX... PRINT CONTROLLED বা CTL
DECIMAL [(precision)] বা DEC... SEQUENTIAL বা SEQL DEFINED[(reference)] বা DEF...
(dimension-attribute) STREAM EXTERNAL বা EXT
ENTRY[(parameter descriptor list)] UPDATE GENERIC(criteria list)
FILE RECORD INITIAL(value-list) বা INIT...
FIXED [(precision)] INTERNAL বা INT
FLOAT [(number of digits)] LIKE unsubscripted reference
FORMAT LOCAL
LABEL OPTIONS(options)
MEMBER PARAMETER বা PARM
NONVARYING বা NONVAR POSITION [(expression)] বা POS...
OFFSET[(reference)] STATIC
PICTURE picture-specification বা PIC... VARIABLE
POINTER বা PTR
STRUCTURE
UNALIGNED বা UNAL
VARYING বা VAR

বর্তমান মাইক্রো ফোকাস এবং বিশেষত আইবিএম-এর কম্পাইলারগুলো স্ট্যান্ডার্ড সংস্করণের উপর ভিত্তি করে অনেক সম্প্রসারণ প্রয়োগ করে। আইবিএম এক্সটেন্ডেড কম্পাইলারের ইমপ্লিমেন্টেশন উপ-অংশে সংক্ষিপ্তভাবে উল্লেখ করা হয়েছে। যদিও কিছু সম্প্রসারণ এই কম্পাইলারগুলোর জন্য সাধারণ, একটি বর্তমান মানের অভাবের কারণে সামঞ্জস্যতা নিশ্চিত করা যায় না।

স্ট্যান্ডার্ডাইজেশন

[সম্পাদনা]

ভাষার স্ট্যান্ডার্ডাইজেশন ১৯৬৬ সালের এপ্রিল মাসে ইউরোপে ইউরোপিয়ান কম্পিউটার ম্যানুফ্যাকচারার্স অ্যাসোসিয়েশন (একমা) টিসি১০-এর মাধ্যমে শুরু হয়। ১৯৬৯ সালে আমেরিকান ন্যাশনাল স্ট্যান্ডার্ডস ইনস্টিটিউট (এএনএসআই) একটি "কম্পোজিট ল্যাঙ্গুয়েজ ডেভেলপমেন্ট কমিটি" গঠন করে, যা "Kludge" নামে পরিচিত ছিল এবং পরে এক্স৩জে১ পিএল/ওয়ান নামে পরিচিত হয়।[১৬]

স্ট্যান্ডার্ডাইজেশন একমা টিসি/১০ এবং এএনএসআই এক্স৩জে১-এর একটি যৌথ প্রচেষ্টা হয়ে ওঠে। জিওয়াই৩৩-৬০০৩[১৭] ডকুমেন্টের একটি সাবসেট IBM-এর মাধ্যমে যৌথ প্রচেষ্টার কাছে প্রস্তাব করা হয় এবং এটি স্ট্যান্ডার্ডাইজেশনের ভিত্তি ডকুমেন্ট হয়ে ওঠে। ভিত্তি ডকুমেন্ট থেকে মূলত বহিষ্কৃত বৈশিষ্ট্যগুলোর মধ্যে ছিল কম্পিউটার মাল্টি-টাস্কিং এবং প্রোগ্রাম অপটিমাইজেশন বৈশিষ্ট্যের জন্য অ্যাট্রিবিউট (যেমন নরম্যাল এবং অ্যাবনরম্যাল)।

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

ভাষা উন্নয়নের সময়, কমিটি লক্ষ্য করে যে ইংরেজি পাঠ্য আকারে লেখা ডকুমেন্টে বেশ কিছু সমস্যা রয়েছে। একটি একক আইটেমের আলোচনা একাধিক স্থানে উপস্থিত হতে পারে, যা মাঝে মাঝে অসঙ্গতিপূর্ণ হতো। তাই ডেভিড বিচ (আইবিএম), রবার্ট ফ্রাইবার্ঘাউস (হানিওয়েল), মিলটন বারবার (সিডিসি), এম. ডোনাল্ড ম্যাকলারেন (আর্গোন ন্যাশনাল ল্যাবরেটরি), ক্রেইগ ফ্র্যাঙ্কলিন (ডাটা জেনারেল), লইস ফ্র্যাম্পটন (ডিজিটাল ইকুইপমেন্ট কর্পোরেশন), এবং সম্পাদক ডি.জে. অ্যান্ড্রুজ (আইবিএম) পুরো ডকুমেন্ট পুনরায় লিখতে উদ্যোগ নেন।

স্ট্যান্ডার্ডটি একটি "পিএল/ওয়ান মেশিন"[১৮] ব্যবহার করে একটি সেমি-ফর্মাল সংজ্ঞা হিসেবে রচিত হয়। এটি ছিল প্রথম প্রোগ্রামিং ভাষা স্ট্যান্ডার্ড, যা সেমি-ফর্মাল সংজ্ঞা আকারে লেখা হয়।

একটি "পিএল/ওয়ান জেনারেল-পারপাস সাবসেট" ("সাবসেট-জি") স্ট্যান্ডার্ড এএনএসআই দ্বারা ১৯৮১ সালে প্রকাশিত হয়[১৫] এবং এর একটি সংশোধনী ১৯৮৭ সালে প্রকাশিত হয়।[১৯] এই জেনারেল-পারপাস সাবসেটটি পিএল/ওয়ান বাস্তবায়নের জন্য একটি মূল ভিত্তি হিসেবে ব্যাপকভাবে গ্রহণ করা হয়।

তথ্যসূত্র

[সম্পাদনা]
  1. Sturm, Eberhard (২০০৯)। The New PL/I। Vieweg+Teubner। আইএসবিএন 978-3-8348-0726-7 
  2. Pugh, Emerson W.; Johnson, Lyle R.; Palmer, John H. (১৯৯১)। IBM's 360 and early 370 systemsবিনামূল্যে নিবন্ধন প্রয়োজন। Cambridge, Mass.: MIT Press। আইএসবিএন 978-0-262-16123-7 
  3. কমিটির সদস্য সংখ্যা তখন ৮ জন ছিল। তাদের মধ্যে ছিলেন:[তথ্যসূত্র প্রয়োজন]
    • হানস বার্গন, লকহিড বারব্যাঙ্ক
    • জর্জ রাডিন, আইবিএম
    • জেমস কক্স, ইউনিয়ন কার্বাইড
    • ব্রুস রোজেনব্ল্যাট, স্ট্যান্ডার্ড অয়েল অফ ক্যালিফোর্নিয়া, চেয়ার।
    • ডগলাস ম্যাকইলরোরেটর, বেল ল্যাবোরেটরিস
    • রবার্ট শেপার্ড, প্রক্টের এন্ড গ্যাম্বল (গাইড সংগঠনের প্রতিনিধি)
    • সি.ডব্লিউ. মেডলক, আইবিএম
    • বার্নিস ওয়েইটজেনহোফার, আইবিএম।
  4. "Datamation in Business & Science MPPL IN FOR NPL" (পিডিএফ)Datamation। খণ্ড 11 নং 4। FRANK D. THOMPSON। এপ্রিল ১৯৬৫। পৃষ্ঠা 17। 
  5. Report II of the SHARE Advanced Language Development Committee, June 25, 1964
  6. Radin, G.; H. Paul Rogoway (জানুয়ারি ১৯৬৫)। "Highlights of a New Programming Language"। Communications of the ACM8 (1): 9–17। এসটুসিআইডি 17133703ডিওআই:10.1145/363707.363708অবাধে প্রবেশযোগ্য 
  7. Radin, G. (আগস্ট ১৯৭৮)। "The Early History and Characteristics of PL/I"। ACM SIGPLAN Notices13 (8): 227–241। এসটুসিআইডি 13925251ডিওআই:10.1145/960118.808389অবাধে প্রবেশযোগ্য 
  8. ভাষার নিয়ন্ত্রণ একটি নিবেদিত ল্যাঙ্গুয়েজ কন্ট্রোল গ্রুপ এবং একটি ল্যাঙ্গুয়েজ কন্ট্রোল বোর্ডের উপর ন্যস্ত ছিল, যা তিনটি দেশের কম্পাইলার গ্রুপগুলোর (১৯৭৩ সালের মধ্যে ৬টি) প্রতিনিধিদের অন্তর্ভুক্ত করেছিল। প্রতিদিনের যোগাযোগ টেলেক্সের মাধ্যমে হতো। পরিবর্তন এবং সম্প্রসারণ ল্যাঙ্গুয়েজ লগের মাধ্যমে করা হয়, যা হাজারেরও বেশি বিস্তারিত পয়েন্ট অন্তর্ভুক্ত করেছিল। ম্যানেজমেন্ট স্তরের ল্যাঙ্গুয়েজ রিভিউ বোর্ড কন্ট্রোল বোর্ড দ্বারা উত্থাপিত বিষয়গুলি সমাধান করত।
  9. The Universal Language Document (ULD). Technical reports TR25.081, TR25.082, TR25.083, TR25.0S4, TR25.085, TR25.086 and TR25.087, IBM Corp Vienna Austria June 1968
  10. "Frederick P. Brooks Jr. - IEEE Computer Society"। IEEE Computer Society। ১৯৮৯। 
  11. "Chapter 1: Introduction" (পিডিএফ)NPL Technical Report (পিডিএফ) (প্রতিবেদন)। IBM। ডিসেম্বর ১৯৬৪। পৃষ্ঠা 11। সংগ্রহের তারিখ জানুয়ারি ১, ২০২৪NPL is designed to serve the needs of an unusually large group of programmers, including scientific, business, real time, and systems programmers. 
  12. কিছু কম্পাইলার এই সনাক্তকরণগুলো সংরক্ষণ করেছিল অথবা ব্যবহার করলে সতর্কবার্তা দিত। তবে কেস স্টেটমেন্ট যোগ করার পর এটি গুরুত্বপূর্ণ হয়ে ওঠে।
  13. Vowels, Robin (২০০১)। Introduction to PL/I। R.A. Vowels। পৃষ্ঠা x। আইএসবিএন 978-0-9596384-9-3"PL/I is the first language to provide adequate facilities for scientific computations, business data processing and systems programming in a single language" - Jean Sammet, Some Approaches to, and Illustrations of, Programming Language History 
  14. ANS Programming Language PL/I. X3.53-1976
  15. ANSI X3.74-1981 (R1998) Information Systems - Programming Language - PL/I General-Purpose Subset
  16. আইবিএম-এর অংশগ্রহণের প্রতিক্রিয়ায়, বেশ কয়েকটি প্রস্তুতকারক স্ট্যান্ডার্ডের প্রচেষ্টাকে সমর্থন করতে অনিচ্ছুক ছিল। সিএলডিজি/এক্স৩জে১-এর প্রাথমিক দায়িত্ব ছিল পিএল/ওয়ান স্ট্যান্ডার্ডাইজেশনের জন্য একটি উপযুক্ত প্রার্থী কিনা তা তদন্ত করা। যৌথ প্রচেষ্টায় ভাষা বা পাঠ্য পরিবর্তনের জন্য ৩৫০০টিরও বেশি প্রস্তাব প্রক্রিয়া করা হয়।
  17. "PL/I Language Specifications. GY33-6003"
  18. PL/I মেশিনের সংজ্ঞাটি The Definition Mechanism for Standard PL/I ডকুমেন্টে বিস্তারিতভাবে বর্ণিত হয়েছে।
  19. 1987 PL/I General-Purpose Subset (ANSI X3.74-1987)