ব্যবহারকারী:Mrmajumder/ALGOL

উইকিপিডিয়া, মুক্ত বিশ্বকোষ থেকে
ALGOL
A 1965 manual for ALGOL-20
প্যারাডাইমProcedural, imperative, structured
পরিবারALGOL
নকশাকারBauer, Bottenbruch, Rutishauser, Samelson, Backus, Katz, Perlis, Wegstein, Naur, Vauquois, van Wijngaarden, Woodger, Green, McCarthy
প্রথম প্রদর্শিত১৯৫৮; ৬৬ বছর আগে (1958)
টাইপিং পদ্ধতিStatic, strong
পরিধিLexical
যাকে প্রভাবিত করেছে
Most subsequent imperative languages (so-called ALGOL-like languages)
e.g. PL/I, Simula, BCPL, B, Pascal, C

ALGOL (

/ˈælɡɒl, -ɡɔːl/

 ; "Algorithmic Language", অ্যালগল) [১]গ হলো অনুজ্ঞাসূচক কম্পিউটার প্রোগ্রামিং ভাষার একটি পরিবার যা মূলত ১৯৫৮ সালে তৈরিকৃত। ALGOL অন্যান্য অনেক ভাষাকে ভারীভাবে প্রভাবিত করেছিল এবং এটি তিরিশ বছরেরও বেশি সময় ধরে অ্যাসোসিয়েশন ফর কম্পিউটিং মেশিনারি (এসিএম) দ্বারা ব্যবহৃত পাঠ্যপুস্তক এবং একাডেমিক উত্সগুলিতে অ্যালগরিদম বর্ণনার প্রমাণ পদ্ধতি ছিল। [২]

এই অর্থে যে বেশিরভাগ আধুনিক ভাষার বাক্য গঠন "আলগোল-জাতীয়", [৩] এটি সমকালীন চারটি উচ্চ-স্তরের প্রোগ্রামিং ভাষার মধ্যে যেটি অন্যতম তাৎপর্যপূর্ণ ছিল, অন্যগুলি যথাক্রমে: ফরট্রান, লিস্প এবং সিওবিওএল[৪] এটি ফরট্রানে অনুভূত বেশকিছু সমস্যা এড়াতে ডিজাইন করা হয়েছিল এবং শেষ পর্যন্ত PL/I, সিমুলা, বিসিপিএল, বি, প্যাস্কাল এবং সি সহ আরও অনেক প্রোগ্রামিং ভাষার উত্থান ঘটায়।

ALGOL কোড ব্লক প্রবর্তন করে এবং তা ধারণ করার জন্য begin ... end জোড় যুক্ত করে। পাশাপাশি এটি প্রথম ভাষা ছিল যা লেক্সিক্যাল স্কোপের সাহায্যে নেস্টেড ফাংশন-এর প্রয়োগ করে। তদুপরি, এটিই প্রথম প্রোগ্রামিং ভাষা ছিল যা formal language সংজ্ঞায়িত করতে বিস্তারিত মনোনিবেশ করে। আলগোল 60 রিপোর্টের মাধ্যমে ব্যাকাস – নওর ফর্মটি প্রবর্তন করা হয়, যা ভাষা নকশার জন্য একটি প্রথাগত ব্যাকরণ স্বরলিপি।

এটির তিনটি প্রধান স্পেসিফিকেশন ছিল, তাদের প্রকাশের বছরগুলির উপরে তাদের নামকরণ করা হয়েছিল:

  • ALGOL 58 - IAL নামে প্রস্তাবিত,আন্তর্জাতিক বীজগাণিতিক ভাষার জন্য
  • ALGOL 60 - 1960 এর মাঝামাঝি সময়ে প্রথম X1 ALGOL 60 হিসাবে প্রয়োগ করা হয়েছিল। সংশোধিত 1963. [৫] [৬]
  • ALGOL 68 - নমনীয় অ্যারে, স্লাইস, সমান্তরালতা, অপারেটর সনাক্তকরণ সহ নতুন উপাদান প্রবর্তিত হয়। সংশোধিত 1973. [৭]

ALGOL 68, ALGOL 60 থেকে যথেষ্ট আলাদা এবং এটি ভালভাবে গ্রহণ করা হয়নি। তাই সাধারণভাবে "Algol" দ্বারা ALGOL 60 এবং এর উপভাষাগুলিকে বোঝানো হয়।

গুরুত্বপূর্ণ বাস্তবায়নগুলো[সম্পাদনা]

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

ইতিহাস[সম্পাদনা]

১৯৫৮ সালে জুরিখের সুইস ফেডারেল ইনস্টিটিউট অফ টেকনোলজির সভায় ইউরোপীয় এবং আমেরিকান কম্পিউটার বিজ্ঞানীদের একটি কমিটি যৌথভাবে ALGOL গড়ে তুলে। (ইটিএইচ জুরিখ ; সিএফ। ALGOL 58 )। এটি তিনটি পৃথক সিনট্যাক্স নির্দিষ্ট করে: একটি রেফারেন্স সিনট্যাক্স, একটি প্রকাশনার সিনট্যাক্স এবং একটি বাস্তবায়ন সিনট্যাক্স। এই সিনট্যাক্সগুলি বিভিন্ন ভাষার বাক্য গঠনের সময় জন্য বিভিন্ন কীওয়ার্ডের নাম এবং দশমিক পয়েন্টের জন্য কনভেনশন ব্যবহারের অনুমতি দেয় (কমাগুলি বনাম পিরিয়ড)।

ALGOL সাধারণত মার্কিন যুক্তরাষ্ট্র এবং ইউরোপের কম্পিউটার বিজ্ঞানীরা ব্যবহার করতেন। বাণিজ্যিক অ্যাপ্লিকেশনগুলিতে এর ব্যবহার বিঘ্নিত হয় এর ইনপুট / আউটপুট সুবিধার অভাব এবং বড় কর্পোরেশন ও বৃহত কম্পিউটার বিক্রেতাদের এই ভাষার প্রতি আগ্রহের অভাবের কারণে (Burroughs Corporation ব্যতীত)। তবে ALGOL 60 অ্যালগরিদম প্রকাশের জন্য প্রমাণ ভাষা হিসাবে পরিচিতি পেয়েছিল এবং ভবিষ্যতের বিভিন্ন প্রোগ্রামিং ভাষা বিকাশের উপর গভীর প্রভাব ফেলেছিল।

caption
আলগোল, ফোর্টরান এবং সিওবিএল প্রোগ্রামিং ভাষা পরিবারের পারিবারিক গাছ

জন ব্যাকাস কেবল ALGOL 58 এর জন্য প্রোগ্রামিং ভাষার বর্ণনার জন্য ব্যাকাসের সাধারণ ফর্ম পদ্ধতিটি তৈরি করেছিলেন। এটি পিটার নওর দ্বারা ALGOL 60 এর জন্য সংশোধন ও প্রসারিত করা হয় এবং ডোনাল্ড নথের পরামর্শে পরবর্তীতে ব্যাকাস-নওর ফর্ম হিসেবে নামকরণ করা হয়। [৮]

পিটার নওর: "ALGOL বুলেটিনের সম্পাদক হিসাবে আমি ভাষার আন্তর্জাতিক আলোচনার প্রতি বেশ আগেই আকৃষ্ট হই এবং ১৯৫৯ সালের নভেম্বরে ইউরোপীয় ভাষা নকশা গোষ্ঠীর সদস্য হিসেবে নির্বাচিত হই। এই ক্ষমতাবলে আমি ১৯৫৯ সালের জানুয়ারিতে প্যারিসে ALGOL meeting সভার ফলাফল হিসাবে উত্পাদিত ALGOL 60 প্রতিবেদনের সম্পাদক ছিলাম। " [৯]

নিম্নলিখিত ব্যক্তিরা প্যারিসের সভায় অংশ নেন (1 থেকে 16 জানুয়ারী পর্যন্ত):

  • ফ্রিডরিচ এল বাউয়ার, পিটার নওর, হেইঞ্জ রুটিশাউজার, ক্লাউস স্যামেলসন, বার্নার্ড ভোকুইস, অ্যাড্রিয়া ভ্যান উইজঙ্গারডেন এবং মাইকেল উডগার (ইউরোপ থেকে)
  • জন ডব্লু ব্যাকাস, জুলিয়েন গ্রিন, চার্লস কাটজ, জন ম্যাকার্থি, অ্যালান জে পেরিলিস, এবং জোসেফ হেনরি ওয়েগস্টেইন (মার্কিন যুক্তরাষ্ট্র থেকে)।

অ্যালান পার্লিস সভাটির একটি বিশদ বর্ণনা দিয়েছিলেন: "সভাগুলি ক্লান্তিকর, লম্বা এবং উদ্দীপক ছিল। অন্যের খারাপ ধারণাগুলির পাশাপাশি যখন কারো ভাল ধারণাগুলিও বাদ দেওয়া হয় তখন একেকজন ক্রুদ্ধ হয়ে উঠছিলো। তবুও, পুরো সময়কালে অধ্যবসায় স্থায়ী ছিল। মিটিং এর তেরজনের রসায়ন দুর্দান্ত ছিল।

ALGOL 60 পরবর্তীতে আসা অনেক ভাষাকে অনুপ্রাণিত করেছিল। টনি হোয়ার মন্তব্য করেছিলেন: "এই এমন একটি ভাষা যা এতই উন্নত যে এটি কেবল পূর্বসূরীদেরই নয়, প্রায় সমস্ত উত্তরসূরিদেরও উন্নতি করেছে।" [১০] স্কিম প্রোগ্রামিং ভাষা, লিস্পের একটি বিকল্প যা ALGOL এর ব্লক কাঠামো এবং লিক্সিকাল স্কোপ অবলম্বন করেছিল, ALGOL এর প্রতি শ্রদ্ধা জানিয়ে এটির স্ট্যান্ডার্ড নথিগুলির জন্য "অ্যালগরিদমিক ভাষা প্রকল্পের সংশোধিত প্রতিবেদন" শব্দটি ব্যবহার করেছিল। [১১]

ALGOL এবং প্রোগ্রামিং ভাষা গবেষণা[সম্পাদনা]

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

আইএএল বাস্তবায়ন টাইমলাইন[সম্পাদনা]

আজ অবধি কমপক্ষে ৭০টি বৃদ্ধি, এক্সটেনশান, ডেরাইভেশনস এবং অ্যালগোল 60 এর সাবল্যাংগ্যাজেজ পাওয়া যায় [১৩]

Name Year Author Country Description Target CPU
ZMMD-implementation 1958 Friedrich L. Bauer, Heinz Rutishauser, Klaus Samelson, Hermann Bottenbruch Germany implementation of ALGOL 58 Z22

(later Zuse's Z23 was delivered with an Algol 60 compiler)[১৪]
X1 ALGOL 60 August 1960[১৫] Edsger W. Dijkstra and Jaap A. Zonneveld Netherlands First implementation of ALGOL 60[১৬] Electrologica X1
Elliott ALGOL 1960s C. A. R. Hoare UK Subject of the 1980 Turing lecture[১৭] Elliott 803, Elliott 503, Elliott 4100 series
JOVIAL 1960 Jules Schwartz USA A DOD HOL prior to Ada Various (see article)
Burroughs Algol

(Several variants)
1961 Burroughs Corporation (with participation by Hoare, Dijkstra, and others) USA Basis of the Burroughs (and now Unisys MCP based) computers Burroughs large systems and their midrange also.
Case ALGOL 1961 Case Institute of Technology[১৮] USA Simula was originally contracted as a simulation extension of the Case ALGOL UNIVAC 1107
GOGOL 1961 William M. McKeeman USA For ODIN time-sharing system[১৯] PDP-1
RegneCentralen ALGOL 1961 Peter Naur, Jørn Jensen Denmark Implementation of full Algol 60 DASK at Regnecentralen
Dartmouth ALGOL 30 1962 Thomas Eugene Kurtz et al. USA LGP-30
USS 90 Algol 1962 L. Petrone Italy
Algol Translator 1962 G. van der Mey and W.L. van der Poel Netherlands Staatsbedrijf der Posterijen, Telegrafie en Telefonie ZEBRA
Kidsgrove Algol 1963 F. G. Duncan UK English Electric Company KDF9
VALGOL 1963 Val Schorre USA A test of the META II compiler compiler
Whetstone 1964 Brian Randell and L. J. Russell UK Atomic Power Division of English Electric Company. Precursor to Ferranti Pegasus, National Physical Laboratories ACE and English Electric DEUCE implementations. English Electric Company KDF9
NU ALGOL 1965 Norway UNIVAC
ALGEK 1965 USSR АЛГЭК, based on ALGOL-60 and COBOL support, for economical tasks Minsk-22
ALGOL W 1966 Niklaus Wirth USA Proposed successor to ALGOL 60 IBM System/360
MALGOL 1966 publ. A. Viil, M Kotli & M. Rakhendi, Estonian SSR Minsk-22
ALGAMS 1967 GAMS group (ГАМС, группа автоматизации программирования для машин среднего класса), cooperation of Comecon Academies of Science Comecon Minsk-22, later ES EVM, BESM
ALGOL/ZAM 1967 Poland Polish ZAM computer
Simula 67 1967 Ole-Johan Dahl and Kristen Nygaard Norway Algol 60 with classes UNIVAC 1107
Chinese Algol 1972 China Chinese characters, expressed via the Symbol system
DG/L 1972 USA DG Eclipse family of Computers
S-algol 1979 Ron Morrison UK Addition of orthogonal datatypes with intended use as a teaching language PDP-11 with a subsequent implementation on the Java VM

বারোজ উপভাষা কিছু বিশেষ উপভাষা অন্তর্ভুক্ত করে যেমন Bootstrapping ESPOL এবং NEWP । উত্তরোত্তরটি এখনও ইউনিসিস এমসিপি সিস্টেম সফ্টওয়্যারের জন্য ব্যবহৃত হয়।

বৈশিষ্টাবলী[সম্পাদনা]

ALGOL 60 আনুষ্ঠানিকভাবে সংজ্ঞায়িত কোন I / O সুবিধা ছিল না; বাস্তবায়নগুলি এমনভাবে তাদের নিজস্ব সংজ্ঞা দেয় যা একে অপরের সাথে খুব কমই সামঞ্জস্যপূর্ণ ছিল। বিপরীতে, ALGOL 68 ট্রান্সপুট (ইনপুট / আউটপুট) সুবিধার একটি বিস্তৃত গ্রন্থাগার সরবরাহ করে।

ALGOL 60 প্যারামিটার পাসের জন্য দুটি মূল্যায়ন কৌশলের জন্য অনুমতি দিয়েছে: সাধারণ কল-বাই-ভ্যালু এবং কল-বাই নাম । কল-বাই-রেফারেন্সের বিপরীতে কিছু নির্দিষ্ট প্রভাব রয়েছে। উদাহরণস্বরূপ, মান বা রেফারেন্স হিসাবে প্যারামিটারগুলি উল্লেখ না করে, এমন পদ্ধতিতে বিকাশ করা অসম্ভব যে দুটি প্যারামিটারের মানগুলিকে অদলবদল করে যদি প্রকৃত প্যারামিটারগুলি উত্তীর্ণ হয় এবং একই ইন্টিজার ভ্যারিয়েবল দ্বারা সূচকযুক্ত অ্যারে হয় । [২০] কোনও ফাংশনে অদলবদল করতে (i, A [i]) পয়েন্টারটি পাস করার কথা ভাবুন। এখন যেহেতু প্রতিবার অদলবদলটি রেফারেন্স করা হয়, তা পুনরায় মূল্যায়ন করা হয়। ধরা যাক : = 1 এবং এ [i] : = 2, সুতরাং প্রতিবার অদলবদলটি রেফারেন্স করা হলে এটি মানগুলির অন্যান্য সংমিশ্রণ ([1,2], [2,1], [1,2] এবং এগুলি প্রদান করবে)। বাস্তব যুক্তি হিসাবে পাস করা একটি এলোমেলো ক্রিয়াকলাপের সাথে একই পরিস্থিতি দেখা দেয়।

কল-বাই-নাম প্রথাটি অনেক সংকলক ডিজাইনারদের দ্বারা এটি প্রয়োগ করার জন্য ব্যবহৃত আকর্ষণীয় "থঙ্কস" এর জন্য পরিচিত। ডোনাল্ড নথ "পুনরাবৃত্তি এবং অ-স্থানীয় রেফারেন্স" সঠিকভাবে প্রয়োগ করে এমন আলাদা সংকলকগুলির জন্য " মানুষ বা বালক পরীক্ষা" তৈরি করেছিলেন। এই পরীক্ষায় নাম অনুসারে কল করার একটি উদাহরণ রয়েছে।

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

উদাহরণ এবং বহনযোগ্যতার সমস্যা[সম্পাদনা]

কোড নমুনা তুলনা[সম্পাদনা]

ALGOL 60[সম্পাদনা]

(গাড় পাঠ্যটি যেভাবে লিখতে হবে তা প্রয়োগের উপর নির্ভর করে, যেমন পূর্ণসংখ্যার জন্য 'INTEGER' — উদ্ধৃতি চিহ্নগুলি অন্তর্ভুক্ত করা হয়। এটি স্ট্রপিং হিসাবে পরিচিত। )

procedure Absmax(a) Size:(n, m) Result:(y) Subscripts:(i, k);
    value n, m; array a; integer n, m, i, k; real y;
comment The absolute greatest element of the matrix a, of size n by m
    is transferred to y, and the subscripts of this element to i and k;
begin
    integer p, q;
    y := 0; i := k := 1;
    for p := 1 step 1 until n do
        for q := 1 step 1 until m do
            if abs(a[p, q]) > y then
                begin y := abs(a[p, q]);
                    i := p; k := q
                end
end Absmax

এলিয়ট 803 ALGOL ব্যবহার করে কীভাবে একটি টেবিল তৈরি করা যায় তার একটি উদাহরণ এখানে। [২১]

FLOATING POINT ALGOL TEST'
 BEGIN REAL A,B,C,D'
  
 READ D'
  
 FOR A:= 0.0 STEP D UNTIL 6.3 DO
 BEGIN
   PRINT PUNCH(3),££L??'
   B := SIN(A)'
   C := COS(A)'
   PRINT PUNCH(3),SAMELINE,ALIGNED(1,6),A,B,C'
 END'
 END'

PUNCH(3) টেপ পাঞ্চের স্থলে টেলিপ্রিন্টারে আউটপুট প্রেরণ করে</br> SLAYLINE ক্যারিজ রিটার্ন + লাইন ফিডটি সাধারণত আর্গুমেন্টের মধ্যে মুদ্রিত করে।</br> ALIGNED (1,6) দশমিক বিন্দুর পরে 1 এবং 6 পরে আউটপুটের ফর্ম্যাটটিকে নিয়ন্ত্রণ করে।

ALGOL 68[সম্পাদনা]

নিম্নলিখিত কোড নমুনাগুলি ALGOL উপরের ALGOL 60 কোড নমুনার 68 সংস্করণ।

ALGOL 68 বাস্তবায়নগুলি স্ট্রপিংয়ের জন্য ALGOL 60 এর পদ্ধতির ব্যবহার করে। ALGOL 68 এর ক্ষেত্রে গাড় টাইপফেসের টোকেনগুলি সংরক্ষিত শব্দ, প্রকার ( মোড ) বা অপারেটর।

proc abs max = ([,]real a, ref real y, ref int i, k)real:
comment The absolute greatest element of the matrix a, of size ⌈a by 2⌈a
is transferred to y, and the subscripts of this element to i and k; comment
begin
   real y := 0; i := ⌊a; k := 2⌊a;
   for p from ⌊a to ⌈a do
     for q from 2⌊a to 2⌈a do
       if abs a[p, q] > y then
           y := abs a[p, q];
           i := p; k := q
       fi
     od
   od;
   y
end # abs max #

দ্রষ্টব্য: lower (⌊) এবং upper (⌈) সীমা এবং অ্যারে স্লাইসিং সরাসরি প্রোগ্রামারের কাছে এভেইলেবল।

floating point algol68 test:
(
  real a,b,c,d;
   
  # printf - sends output to the file stand out. #
  # printf($p$); – selects a new page #
  printf(($pg$,"Enter d:"));  
  read(d);
   
  for step from 0 while a:=step*d; a <= 2*pi do
    printf($l$);  # $l$ - selects a new line. #
    b := sin(a);
    c := cos(a);
    printf(($z-d.6d$,a,b,c))  # formats output with 1 digit before and 6 after the decimal point. #
  od
)

সময়রেখা: Hello world[সম্পাদনা]

একটি বাস্তবায়ন থেকে অন্যটিতে প্রোগ্রামগুলির বহনযোগ্যতার অভাব এবং ক্লাসিক হ্যালো ওয়ার্ল্ড প্রোগ্রাম দ্বারা সহজেই প্রদর্শিত হয়।

ALGOL 58 (IAL)[সম্পাদনা]

ALGOL 58 এর কোনও I / O সুবিধা ছিল না।

ALGOL 60 পরিবার[সম্পাদনা]

যেহেতু ALGOL 60 এর কোনও I / O সুবিধা ছিল না, ALGOL তে কোনও পোর্টেবল হ্যালো ওয়ার্ল্ড প্রোগ্রাম নেই। পরবর্তী তিনটি উদাহরণ বারোজ এক্সটেন্ডেড আলগোলে। ইন্টারেক্টিভ টার্মিনালে প্রথম দুটি সরাসরি আউটপুট তারা চালিত হয়। প্রথমে সি এর মতো একটি বর্ণচিহ্ন অ্যারে ব্যবহার করে, ভাষাটি অ্যারে সনাক্তকারীকে অ্যারেতে পয়েন্টার হিসাবে ব্যবহার করতে দেয় এবং তাই কোনও প্রতিস্থাপনের বিবৃতিতে।

BEGIN
  FILE F(KIND=REMOTE);
  EBCDIC ARRAY E[0:11];
  REPLACE E BY "HELLO WORLD!";
  WRITE(F, *, E);
END.

একটি ইনলাইন ফর্ম্যাট ব্যবহার করে একটি সহজ প্রোগ্রাম:

BEGIN
  FILE F(KIND=REMOTE);
  WRITE(F, <"HELLO WORLD!">);
END.

প্রদর্শন স্টেটমেন্ট ব্যবহার করে একটি আরো সাধারণ প্রোগ্রাম। নোট করুন যে এর আউটপুটটি সিস্টেম কনসোল ('এসপিও') এ শেষ হবে:

BEGIN DISPLAY("HELLO WORLD!") END.

একটি বিকল্প উদাহরণ, এলিয়ট আলগোল I / O ব্যবহার করে যা নিম্নরূপ। এলিয়ট আলগোল "ওপেন-স্ট্রিং-কোট" এবং "ক্লোজ-স্ট্রিং-কোট" এর জন্য বিভিন্ন অক্ষর ব্যবহার করে:

program HiFolks;
 begin
    print 'Hello world';
 end;

এলিয়ট 803 অ্যালগল (এ 104) এর একটি সংস্করণ এখানে রয়েছে স্ট্যান্ডার্ড এলিয়ট 803 যা 5 টি গর্তের কাগজ টেপ ব্যবহার করেছে এবং কেবলমাত্র এটির উপরের কেস ছিল। কোডটিতে উদ্ধৃতি অক্ষরের অভাব ছিল তাই £(ইউকে পাউন্ড সাইন) ওপেন কোটের জন্য ব্যবহৃত হত এবং ? (প্রশ্ন চিহ্ন) ক্লোজিং কোটের জন্য। বিশেষ ক্রমগুলি ডাবল উদ্ধৃতিতে স্থাপন করা হয়েছিল (উদাঃ) ££ L?? টেলিপ্রিন্টারে একটি নতুন লাইন তৈরি করে)।

HIFOLKS'
  BEGIN
     PRINT £HELLO WORLD£L??'
  END'

আইসিটি 1900 সিরিজের আলগল I/O সংস্করণে কাগজের টেপ বা খোঁচা কার্ড থেকে ইনপুট গ্রহণ করে। কাগজ টেপ 'সমপূর্ণ' মোডে ছোট হাতের অক্ষরে অনুমোদিত। আউটপুটটি একটি লাইন প্রিন্টারে ছিল। '(' এবং ')' ব্যবহার করে ওপেনিং ও ক্লোজিং কোট এবং  % ব্যবহার করে ফাঁকা স্থান বোঝায়। [২২]

'BEGIN'
     WRITE TEXT('('HELLO%WORLD')');
  'END'

ALGOL 68[সম্পাদনা]

ALGOL 68 কোডটি রক্ষিত শব্দের সাথে সাধারণত ছোট হাতের অক্ষরও প্রকাশ করে, তবে গাড় বা আন্ডারলাইন করা হয়েছে।

begin
  printf(($gl$,"Hello, world!"))
end

"অ্যালগল 68 রিপোর্ট" এর ভাষায় ইনপুট / আউটপুট সুবিধারগুলিকে সম্মিলিতভাবে "ট্রান্সপুট" বলা হত।

ALGOL বিশেষ অক্ষরের টাইমলাইন[সম্পাদনা]

ALGOL ভাষাগুলি এমন এক সময়ে কল্পনা করা হয়েছিল যখন ক্যারাক্টার সেটগুলি বৈচিত্র্যময় এবং দ্রুত বিকশিত হচ্ছিলো; এছাড়াও, ALGOL ভাষাগুলি এমনভাবে সংজ্ঞায়িত করা হয়েছিল যাতে কেবলমাত্র বড় হাতের অক্ষরের প্রয়োজন হয়।

1960: আইএফআইপি - আলগোল 60 ভাষা এবং প্রতিবেদনে বেশ কয়েকটি গাণিতিক চিহ্ন অন্তর্ভুক্ত ছিল যা আধুনিক কম্পিউটার এবং অপারেটিং সিস্টেমগুলিতে পাওয়া যায়, তবে দুর্ভাগ্যক্রমে, তখন বেশিরভাগ কম্পিউটিং সিস্টেমে অসমর্থিত ছিল। উদাহরণস্বরূপ: ×, ÷, ≤, ≥, ≠, ¬, ∨, ∧, ⊂, ≡, ␣ এবং ⏨.

1961 সেপ্টেম্বর: ASCII - ASCII অক্ষর সেট, তারপর তার বিকাশের প্রাথমিক পর্যায়ে, \ (ব্যাকস্ল্যাশ) চরিত্রটিও যুক্ত হয় যাতে তা এলগলের বুলিয়ান অপারেটরদের / \ এবং \ / সমর্থন করতে পারে। [২৩]

1962: ALCOR - এই অক্ষর সেটটিতে গুণমানের জন্য অস্বাভাবিক "᛭" রুনিক ক্রস [২৪] অক্ষর এবং ভাসমান পয়েন্ট নোটেশনের জন্য "⏨" দশমিক এক্সপোনেন্ট প্রতীক যোগ করে[২৫] [২৬] [২৭] [২৮]

1964: GOST - 1964 সালের সোভিয়েত স্ট্যান্ডার্ড GOST 10859 ALGOL এ 4-বিট, 5-বিট, 6-বিট এবং 7-বিট অক্ষরের এনকোডিংয়ের অনুমতি ছিল। [২৯]

1968: "অ্যালগল 68 রিপোর্ট" - প্রচলিত ALGOL অক্ষর ব্যবহৃত হয়েছিল, এবং আরও অনুসরণ করে →, ↓, ↑, □, ⌊, ⌈, ⎩, ⎧, ○, ⊥, এবং ¢ অক্ষর যা IBM 2741 কীবোর্ডের সাথে পাওয়া যাবে টাইপবল (বা গল্ফ বল ) প্রিন্ট হেড(যেমন এপিএল গল্ফ বল )। এগুলি 1960 এর দশকের মাঝামাঝি সময়ে পাওয়া যায় যখন ALGOL 68 খসড়া তৈরি করা হচ্ছিল। এই প্রতিবেদনটি রাশিয়ান, জার্মান, ফরাসী এবং বুলগেরিয় ভাষায় অনুবাদ করা হয়েছিল এবং বৃহত্তর চরিত্রের সেটগুলি, যেমন, সোভিয়েত বিইএসএম -4 এর সিরিলিক বর্ণমালা সহ ভাষাগুলিতে প্রোগ্রামিংয়ের অনুমতি দেওয়া হয়েছিল। সমস্ত ALGOL এর অক্ষরগুলিও ইউনিকোড স্ট্যান্ডার্ডের অংশ এবং এগুলির বেশিরভাগ বেশ কয়েকটি জনপ্রিয় ফন্টে উপলব্ধ

২০০৯ সালের অক্টোবর: ইউনিকোড - , বুরান প্রোগ্রাম ALGOL সফ্টওয়্যারটির সাথে পশ্চাদপটে সামঞ্জস্যের জন্য ফ্লোটিং পয়েন্ট নোটেশনের জন্য ⏨ (দশমিক এক্সপোঞ্জার সিম্বল) ইউনিকোড 5.2-এ যুক্ত করা হয়েছিল। [৩০]

আরো দেখুন[সম্পাদনা]

তথ্যসূত্র[সম্পাদনা]

 

  1. The name of this language family is sometimes given in mixed case (Algol 60 ওয়েব্যাক মেশিনে আর্কাইভকৃত ২৫ জুন ২০০৭ তারিখে), and sometimes in all uppercase (ALGOL68 ওয়েব্যাক মেশিনে আর্কাইভকৃত ১৩ সেপ্টেম্বর ২০১৪ তারিখে). For simplicity this article uses ALGOL.
  2. Collected Algorithms of the ACM উইকিউইক্সে আর্কাইভকৃত ১৭ অক্টোবর ২০১১ তারিখে Compressed archives of the algorithms. ACM.
  3. O'Hearn, P. W.; Tennent, R. D. (সেপ্টেম্বর ১৯৯৬)। "Algol-like languages, Introduction"। ১৪ নভেম্বর ২০১১ তারিখে মূল থেকে আর্কাইভ করা। 
  4. "The ALGOL Programming Language" ওয়েব্যাক মেশিনে আর্কাইভকৃত ৬ অক্টোবর ২০১৬ তারিখে, University of Michigan-Dearborn
  5. Backus, J. W.; Bauer, F. L. (মে ১৯৬০)। Report on the Algorithmic Language ALGOL 60আইএসএসএন 0001-0782ডিওআই:10.1145/367236.367262 
  6. "Revised Report on the Algorithmic Language Algol 60"। ১৯৬৩। ২৫ জুন ২০০৭ তারিখে মূল থেকে আর্কাইভ করা। সংগ্রহের তারিখ ৮ জুন ২০০৭ 
  7. "Revised Report on the Algorithmic Language ALGOL 68" (পিডিএফ)। ১৯৭৩। ১৩ সেপ্টেম্বর ২০১৪ তারিখে মূল (পিডিএফ) থেকে আর্কাইভ করা। সংগ্রহের তারিখ ১৩ সেপ্টেম্বর ২০১৪ 
  8. Knuth, Donald E. (১৯৬৪)। "Backus Normal Form vs Backus Naur Form": 735–736। ডিওআই:10.1145/355588.365140 
  9. ACM Award Citation: Peter Naur আর্কাইভইটে আর্কাইভকৃত ২ এপ্রিল ২০১২ তারিখে, 2005
  10. "Hints on Programming Language Design" ওয়েব্যাক মেশিনে আর্কাইভকৃত ১৫ সেপ্টেম্বর ২০০৯ তারিখে, C.A.R. Hoare, December 1973. Page 27. (This statement is sometimes erroneously attributed to Edsger W. Dijkstra, also involved in implementing the first ALGOL 60 compiler.)
  11. Dybvig, R. K.। Rees, Jonathan; Clinger, William, সম্পাদকগণ। "Revised(3) Report on the Algorithmic Language Scheme, (Dedicated to the Memory of ALGOL 60)"। ১৪ জানুয়ারি ২০১০ তারিখে মূল থেকে আর্কাইভ করা। সংগ্রহের তারিখ ২০ অক্টোবর ২০০৯ 
  12. O'Hearn, Peter; Tennent, Robert D. (১৯৯৭)। Algol-Like Languages। Birkhauser Boston। আইএসবিএন 978-0-8176-3880-1ডিওআই:10.1007/978-1-4612-4118-8 
  13. "The Encyclopedia of Computer Languages"। ২৭ সেপ্টেম্বর ২০১১ তারিখে মূল থেকে আর্কাইভ করা। সংগ্রহের তারিখ ২০ জানুয়ারি ২০১২ 
  14. Computer Museum History ওয়েব্যাক মেশিনে আর্কাইভকৃত ২০ আগস্ট ২০১০ তারিখে, Historical Zuse-Computer Z23, restored by the Konrad Zuse Schule in Hünfeld, for the Computer Museum History Center in Mountain View (California) USA
  15. Daylight, E. G. (২০১১)। "Dijkstra's Rallying Cry for Generalization: the Advent of the Recursive Procedure, late 1950s – early 1960s": 1756–1772। ডিওআই:10.1093/comjnl/bxr002সাইট সিয়ারX 10.1.1.366.3916অবাধে প্রবেশযোগ্য। ১২ মার্চ ২০১৩ তারিখে মূল থেকে আর্কাইভ করা। 
  16. Kruseman Aretz, F.E.J. (৩০ জুন ২০০৩)। "The Dijkstra-Zonneveld ALGOL 60 compiler for the Electrologica X1"। Software Engineering (পিডিএফ)। History of Computer Science। Centrum Wiskunde & Informatica। ৪ মার্চ ২০১৬ তারিখে মূল (পিডিএফ) থেকে আর্কাইভ করা। 
  17. Hoare, Antony (১৯৮০)। "The Emperor's Old Clothes" (2)। ডিওআই:10.1145/358549.358561অবাধে প্রবেশযোগ্য। ১৩ সেপ্টেম্বর ২০১৭ তারিখে মূল থেকে আর্কাইভ করা। 
  18. Koffman, Eliot। "All I Really Need to KnowI Learned in CS1" (পিডিএফ)। ১২ অক্টোবর ২০১২ তারিখে মূল (পিডিএফ) থেকে আর্কাইভ করা। সংগ্রহের তারিখ ২০ মে ২০১২ 
  19. "GOGOL - PDP-1 Algol 60 (Computer Language)"। Online Historical Encyclopaedia of Programming Languages। ২ ফেব্রুয়ারি ২০১৮ তারিখে মূল থেকে আর্কাইভ করা। সংগ্রহের তারিখ ১ ফেব্রুয়ারি ২০১৮ 
  20. Aho, Alfred V.; Sethi, Ravi (১৯৮৬)। Compilers: Principles, Techniques, and Tools (1st সংস্করণ)। Addison-Wesley। আইএসবিএন 0-201-10194-7 , Section 7.5, and references therein
  21. "803 ALGOL" ওয়েব্যাক মেশিনে আর্কাইভকৃত ২৯ মে ২০১০ তারিখে, the manual for Elliott 803 ALGOL
  22. "ICL 1900 series: Algol Language"। ICL Technical Publication 3340। ১৯৬৫। 
  23. How ASCII Got Its Backslash ওয়েব্যাক মেশিনে আর্কাইভকৃত ১১ জুলাই ২০১৪ তারিখে, Bob Bemer
  24. iron/runic cross
  25. Decimal Exponent Symbol
  26. Baumann, R. (অক্টোবর ১৯৬১)। "ALGOL Manual of the ALCOR Group, Part 1" (জার্মান ভাষায়): 206–212। 
  27. Baumann, R. (ডিসেম্বর ১৯৬১)। "ALGOL Manual of the ALCOR Group, Part 2" (জার্মান ভাষায়): 259–265। 
  28. Baumann, R. (এপ্রিল ১৯৬২)। "ALGOL Manual of the ALCOR Group, Part 3" (জার্মান ভাষায়)। 
  29. "GOST 10859 standard"। ১৬ জুন ২০০৭ তারিখে মূল থেকে আর্কাইভ করা। সংগ্রহের তারিখ ৫ জুন ২০০৭ 
  30. Broukhis, Leonid (২২ জানুয়ারি ২০০৮)। "Revised proposal to encode the decimal exponent symbol" (পিডিএফ)www.unicode.org। ISO/IEC JTC 1/SC 2/WG 2। ৩১ জুলাই ২০১৫ তারিখে মূল (পিডিএফ) থেকে আর্কাইভ করা। সংগ্রহের তারিখ ২৪ জানুয়ারি ২০১৬This means that the need to transcode GOST-based software and documentation can still arise: legacy numerical algorithms (some of which may be of interest,e.g. for the automatic landing of the Buran shuttle ...) optimized for the non-IEEE floating point representation of BESM-6 cannot be simply recompiled and be expected to work reliably, and some human intervention may be necessary. 

আরও পড়া[সম্পাদনা]

বাহ্যিক লিঙ্কগু[সম্পাদনা]

[ স্থায়ী মৃত লিঙ্ক ] [[বিষয়শ্রেণী:পদ্ধতিমূলক প্রোগ্রামিং ভাষা]]