PyPy
পাইপি () হল পাইথন প্রোগ্রামিং ভাষার একটি প্রয়োগ। পাইপি প্রায়শই স্ট্যান্ডার্ড বাস্তবায়ন সিপিথনের চেয়ে দ্রুত চলে কারণ পাইপি একটি জাস্ট-ইন-টাইম কম্পাইলার ব্যবহার করে। সিপিথন এক্সটেনশনের উপর নির্ভরশীল কোড ছাড়া বেশিরভাগ পাইথন কোড পাইপাই-তে ভাল চলে, যা পাইপাই-তে চালানোর সময় হয় কাজ করে না বা কিছু ওভারহেড বহন করে। অভ্যন্তরীণভাবে, পাইপাই মেটা-ট্রেসিং নামে পরিচিত একটি কৌশল ব্যবহার করে, যা একটি দোভাষীকে একটি ট্রেসিং জাস্ট-ইন-টাইম কম্পাইলারে রূপান্তরিত করে। যেহেতু সংকলকদের তুলনায় দোভাষীদের লেখা সাধারণত সহজ, তবে ধীর গতিতে চলে, তাই এই কৌশলটি প্রোগ্রামিং ভাষাগুলির দক্ষ বাস্তবায়ন তৈরি করা সহজ করে তুলতে পারে। পাইপাই-এর মেটা-ট্রেসিং টুলচেইনকে বলা হয় আরপাইথন। সিপাইথন বাস্তুতন্ত্রের আরও সাম্প্রতিক সংস্করণগুলির সাথে পাইপাইয়ের সম্পূর্ণ সামঞ্জস্য নেই। যদিও এটি পাইথন 2.7,3.7,3.8 এবং 3.9 ("সিপিথনের জন্য একটি ড্রপ-ইন প্রতিস্থাপন") এর সাথে সামঞ্জস্যতা দাবি করে, তবে এটি পাইথন 3.1-এ কিছু নতুন বৈশিষ্ট্য এবং সিনট্যাক্সের অভাব রয়েছে, যেমন প্যাটার্ন মিলনের জন্য সিনট্যাক্স। বিস্তারিত এবং অনুপ্রেরণা পাইপাই-এর লক্ষ্য হল গতিশীল ভাষার বাস্তবায়নের জন্য একটি সাধারণ অনুবাদ এবং সমর্থন কাঠামো প্রদান করা, যা ভাষা নির্দিষ্টকরণ এবং বাস্তবায়নের দিকগুলির মধ্যে একটি পরিষ্কার পৃথকীকরণের উপর জোর দেয়। এর লক্ষ্য হল নিম্ন-স্তরের বিবরণ এনকোড না করে নতুন উন্নত বৈশিষ্ট্যগুলি সক্ষম করার জন্য উপরের কাঠামোটি ব্যবহার করে পাইথন প্রোগ্রামিং ভাষার একটি অনুবর্তী, নমনীয় এবং দ্রুত বাস্তবায়ন প্রদান করা। RPython পাইপাই ইন্টারপ্রেটার নিজেই পাইথনের একটি সীমাবদ্ধ উপসেটে লেখা হয় যা RPython (সীমাবদ্ধ পাইথন) নামে পরিচিত। RPython পাইথন ভাষার উপর কিছু সীমাবদ্ধতা রাখে যাতে কম্পাইলের সময় একটি পরিবর্তনশীলের ধরন অনুমান করা যায়। পাইপি প্রকল্পটি একটি টুলচেইন তৈরি করেছে যা আরপাইথন কোড বিশ্লেষণ করে এবং এটিকে বাইট কোডের একটি আকারে অনুবাদ করে, যা সি-তে নামানো যেতে পারে। সিঃ জাভা, সি #এবং জাভাস্ক্রিপ্ট ছাড়াও অন্যান্য ব্যাকএন্ড ছিল, তবে সেগুলি বিট্রোটে ভুগছিল এবং অপসারণ করা হয়েছে। সুতরাং, পাইপাই-এর পুনরাবৃত্তিমূলক লোগোটি একটি সাপ যা নিজেকে গিলে ফেলে, যেহেতু আরপিথন একটি পাইথন দোভাষী দ্বারা অনুবাদ করা হয়। কোডটি পরীক্ষা এবং বিশ্লেষণের জন্য অনুবাদ না করেও চালানো যেতে পারে, যা গতিশীল ভাষায় গবেষণার জন্য একটি সুন্দর পরীক্ষা-কেন্দ্র প্রদান করে। এটি প্লাগযোগ্য আবর্জনা সংগ্রহকারীদের পাশাপাশি বিকল্পভাবে স্ট্যাকলেস পাইথন বৈশিষ্ট্যগুলি সক্ষম করার অনুমতি দেয়। পরিশেষে, এটিতে একটি জাস্ট-ইন-টাইম (জে. আই. টি) জেনারেটর অন্তর্ভুক্ত রয়েছে যা ইন্টারপ্রেটারের সোর্স কোডে কয়েকটি টীকা দিয়ে ইন্টারপ্রেটারের মধ্যে একটি জাস্ট-ইন-টাইম কম্পাইলার তৈরি করে। জেনারেটেড জেআইটি কম্পাইলার হল একটি ট্রেসিং জেআইটি। আরপিথন এখন পিক্সির মতো অ-পাইথন ভাষা বাস্তবায়নের জন্যও ব্যবহৃত হয়। প্রকল্প অবস্থা সংস্করণ 7.3.7 হিসাবে পাইপাই তিনটি সিপিথন সংস্করণের সাথে সামঞ্জস্যপূর্ণঃ 2.7,3 এবং 3.8। সিপিথন ভি3-এর সঙ্গে সামঞ্জস্যপূর্ণ প্রথম পাইপি সংস্করণ হল পাইপি v2.3.1 (2014)। সিপিথন ভি3-এর সঙ্গে সামঞ্জস্যপূর্ণ পাইপি ইন্টারপ্রেটারটি পাইপি3 নামেও পরিচিত। পাইপাই-এর 32-বিট/64-বিট x86 এবং 32-বিট/64-বিট এআরএম প্রসেসরে জেআইটি সংকলন সমর্থন রয়েছে। এটি উইন্ডোজ, লিনাক্স, ওপেনবিএসডি এবং ম্যাক ওএস এক্স-এ রাতারাতি পরীক্ষা করা হয়। পাইপাই বিশুদ্ধ পাইথন সফ্টওয়্যার চালাতে সক্ষম যা বাস্তবায়ন-নির্দিষ্ট বৈশিষ্ট্যগুলির উপর নির্ভর করে না। সিপিথন সি এপিআই এক্সটেনশনের জন্য একটি সামঞ্জস্যপূর্ণ স্তর রয়েছে যা সিপিইএক্সটি নামে পরিচিত, তবে এটি অসম্পূর্ণ এবং পরীক্ষামূলক। সি শেয়ারড লাইব্রেরির সঙ্গে সংযোগ স্থাপনের পছন্দের উপায় হল বিল্ট-ইন সি ফরেন ফাংশন ইন্টারফেস (সিএফএফআই) বা টাইপ লাইব্রেরির মাধ্যমে। হিস্ট্রি পাইপাই হল সাইকো প্রকল্পের একটি ফলোআপ, যা পাইথনের জন্য একটি জাস্ট-ইন-টাইম স্পেশালাইজিং কম্পাইলার, যা 2002 থেকে 2010 সালের মধ্যে আরমিন রিগো দ্বারা তৈরি করা হয়েছিল। পাইপির লক্ষ্য হল সুযোগ সহ একটি জাস্ট-ইন-টাইম স্পেশালাইজিং কম্পাইলার থাকা, যা সাইকোর জন্য উপলব্ধ ছিল না। প্রাথমিকভাবে, আরপাইথন জাভা বাইটকোড, সিআইএল এবং জাভাস্ক্রিপ্টেও সংকলিত হতে পারে, তবে আগ্রহের অভাবে এই ব্যাকএন্ডগুলি সরানো হয়েছিল। পাইপাই প্রাথমিকভাবে একটি গবেষণা ও উন্নয়নমুখী প্রকল্প ছিল। বিকাশের একটি পরিপক্ক অবস্থায় পৌঁছে এবং 2007 সালের মাঝামাঝি সময়ে একটি সরকারী 1 মুক্তি, এর পরবর্তী ফোকাস ছিল আরও সিপিথন সামঞ্জস্যের সাথে একটি উৎপাদন-প্রস্তুত সংস্করণ প্রকাশের উপর। কোডিং স্প্রিন্টের সময় পাইপির অনেক পরিবর্তন করা হয়েছে। 2008 সালের আগস্টে, পাইপাই পাইলনস, পিগলেট, নেভো এবং জ্যাঙ্গোর মতো কিছু জনপ্রিয় পাইথন গ্রন্থাগার চালাতে সক্ষম হয়েছিল। 2010 সালের 12ই মার্চ, পাইপি 1.2 মুক্তি পায়, যা গতির উপর দৃষ্টি নিবদ্ধ করে। এটিতে একটি কার্যকরী, যদিও এখনও স্থিতিশীল নয়, ঠিক সময়ে কম্পাইলার অন্তর্ভুক্ত ছিল। 2011 সালের 30শে এপ্রিল, পাইপাই সংস্করণ 1.5 মুক্তি পায়, যা সিপিথন 2.7-এর সাথে সামঞ্জস্যপূর্ণ হয়। 2013 সালের 9ই মে, পাইপি 2 মুক্তি পায়, যা এআরএমভি 6 এবং এআরএমভি 7 জেআইটিতে জেআইটি সংকলনের জন্য আলফা-মানের সমর্থন চালু করে এবং স্ট্যান্ডার্ড লাইব্রেরিতে সিএফএফআই অন্তর্ভুক্ত করে। 2014 সালের 20শে জুন, পাইপাই3-কে স্থিতিশীল ঘোষণা করা হয় এবং আরও আধুনিক পাইথন 3-এর সাথে সামঞ্জস্যতা চালু করা হয়। এটি পাইপি 2.3.1-এর পাশাপাশি মুক্তি পায় এবং একই সংস্করণ নম্বর বহন করে। 2017 সালের 21শে মার্চ, পাইপি প্রকল্পটি পাইপি এবং পাইপি 3 উভয়েরই সংস্করণ 5.7 প্রকাশ করে, যার মধ্যে পরেরটি পাইথন 3.5-এর জন্য বিটা-মানের সমর্থন চালু করে। 26শে এপ্রিল 2018-এ, সংস্করণ 6.0 মুক্তি পায়, পাইথন 2.7 এবং 3.5 (উইন্ডোজে এখনও বিটা-মানের) সমর্থন সহ। 2019 সালের 11ই ফেব্রুয়ারি সংস্করণ 7 মুক্তি পায়, যেখানে পাইথন 2.7 এবং 3.5 সমর্থন করে। 14ই অক্টোবর 2019-এ, পাইথন 3.6.9-এর সমর্থন সহ সংস্করণ 7.2 মুক্তি পায়। 24শে ডিসেম্বর 2019-এ, পাইথন 3.6.9-এর সমর্থন সহ সংস্করণ 7.3 মুক্তি পায়। 2020 সালের 16ই ফেব্রুয়ারি, পাইপি দল সিএফএফআই (সি ফরেন ফাংশন ইন্টারফেস) প্রকল্পের সংগ্রহস্থলগুলির সাথে বিটবাকেট থেকে heptapod.net-এ সোর্স কোড হোস্টিং স্থানান্তরের ঘোষণা দেয়। একটি নতুন লোগো এবং ওয়েবসাইট ডিজাইনও প্রকাশিত হয়েছে। তবে, নতুন লোগোটির লেখক এবং লাইসেন্স অজানা। ডিসেম্বর 2004 থেকে মার্চ 2007-এর মধ্যে একটি নির্দিষ্ট লক্ষ্যযুক্ত গবেষণা প্রকল্প হিসাবে ইউরোপীয় ইউনিয়ন পাইপাই-কে অর্থায়ন করেছিল। 2008 সালের জুন মাসে, পাইপাই গুগল ওপেন সোর্স প্রোগ্রামের অংশ হিসাবে তহবিলের কথা ঘোষণা করে এবং পাইপাইকে সিপিথনের সাথে আরও সামঞ্জস্যপূর্ণ করার দিকে মনোনিবেশ করতে সম্মত হয়। 2009 সালে ইউরোস্টার্স, একটি ইউরোপীয় ইউনিয়নের তহবিল সংস্থা যা বিশেষভাবে এসএমই-এর উপর দৃষ্টি নিবদ্ধ করে, পাইপি প্রকল্পের সদস্যদের কাছ থেকে "পিওয়াইজেআইটি-পাইপি ভিত্তিক গতিশীল প্রোগ্রামিং ভাষার জন্য একটি দ্রুত এবং নমনীয় টুলকিট" শীর্ষক একটি প্রস্তাব গ্রহণ করে। ইউরোস্টার তহবিল আগস্ট 2011 পর্যন্ত স্থায়ী ছিল। পাইকন ইউএস 2011-এ, পাইথন সফ্টওয়্যার ফাউন্ডেশন পাইপাই-কে ভাষার নতুন সংস্করণগুলির সাথে কর্মক্ষমতা এবং সামঞ্জস্যের উপর কাজ চালিয়ে যাওয়ার জন্য $10,000 অনুদান প্রদান করে। এআরএম স্থাপত্যের বন্দরটি আংশিকভাবে রাস্পবেরি পাই ফাউন্ডেশন দ্বারা স্পনসর করা হয়েছিল। পাইপাই প্রকল্পটি তাদের স্ট্যাটাস ব্লগ পেজের মাধ্যমেও অনুদান গ্রহণ করে। 2013 সালের হিসাবে, বিভিন্ন উপ-প্রকল্পের তহবিল ছিলঃ পাইথন 3 সংস্করণ সামঞ্জস্য, সংখ্যাসূচক গণনার জন্য অন্তর্নির্মিত অপ্টিমাইজড নামপাই সমর্থন এবং আরও ভাল সমান্তরালতার অনুমতি দেওয়ার জন্য সফ্টওয়্যার লেনদেনের মেমরি সমর্থন। আরও দেখুন বুটস্ট্র্যাপিং (সংকলক) সাইথন গ্রালভিএম আংশিক মূল্যায়ন সাইকো সেলফ-হোস্টিং সেলফ-ইন্টারপ্রেটার আনল্যাডেন সোয়ালো নোটস রেফারেন্স ডেভিড আনকোনা, ম্যাসিমো আনকোনা, আন্তোনিও কুনি, নিকোলাস ডি. মাতসাকিস, 2007। আরপিথনঃ গতিশীল এবং স্ট্যাটিক্যালি টাইপ করা ওও ভাষাগুলির পুনর্মিলনের দিকে একটি পদক্ষেপ। প্রোক-এ। গতিশীল ভাষা সিম্পোজিয়াম (ডিএলএস), 2007। এসিএম প্রেস। কার্ল ফ্রেডরিখ বলজ, অ্যান্টোনিও কুনি, মাসিয়েজ ফিজালকোভস্কি, 2009। মেটা-লেভেল ট্রেসিংঃ পাইপাই-এর ট্রেসিং জেআইটি কম্পাইলার। প্রোক-এ। আই. সি. ও. ও. এল. পি. এস, 2009। এসিএম প্রেস। বাহ্যিক লিঙ্ক 2007 সফ্টওয়্যার এফ. পি. 6 প্রকল্প এম. আই. টি লাইসেন্স স্ট্যাক-ভিত্তিক ভার্চ্যুয়াল মেশিন ব্যবহার করে পাইথন পাইথন (প্রোগ্রামিং ভাষা) বাস্তবায়নের সফ্টওয়্যারে প্রোগ্রাম করা মুক্ত সফ্টওয়্যার