প্রোগ্রামিং ভাষার বাক্য গঠনগুলি কি তাদের প্রয়োগের উপর নির্ভর করে?


12

যদিও, আমার প্রশ্নটি সম্পূর্ণ অপ্রাসঙ্গিক হতে পারে তবে আমি বেশিরভাগ প্রোগ্রামিং ভাষা এবং তাদের অফিসিয়াল বাস্তবায়নের মধ্যে একটি প্যাটার্ন অনুভব করেছি।

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

সি, সি ++, পাস্কাল ইত্যাদির মতো সংকলিত ভাষাগুলির সাধারণত একটি কঠোর বাক্য গঠন থাকে, সাধারণত ধরণের থাকে এবং বেশিরভাগ ক্ষেত্রে আরও কোড / বিকাশের সময় প্রয়োজন

যে ভাষাগুলির সরকারী বাস্তবায়ন জাভা / সি # এর মতো জেআইটি-সংকলিত হয় সেগুলি উভয়ের সেরা বৈশিষ্ট্যগুলির সাথে উপরের দুটির মধ্যে একটি অনন্য সমঝোতা।

ডি এবং ভালা (এবং জাভার জিএনইউ জিজেসি বাস্তবায়ন) এর মতো আরও আধুনিক সংকলিত প্রোগ্রামিং ভাষার কয়েকটি সম্ভবত এই নিয়মের ব্যতিক্রম এবং জাভা এবং সি # এর মতো জেআইটি-সংকলিত ভাষার সিনট্যাক্স এবং বৈশিষ্ট্যগুলির সাথে সাদৃশ্যপূর্ণ।

আমার প্রথম প্রশ্নটি, এটি কি সত্যিই প্রাসঙ্গিক? বা এটি কি কেবল কাকতালীয় যে বেশিরভাগ ব্যাখ্যামূলক ভাষায় সহজ বাক্য গঠন থাকে, জেআইটি-সংকলিতগুলিতে একটি মাঝারি বাক্য গঠন এবং বৈশিষ্ট্য ইত্যাদি রয়েছে etc.

দ্বিতীয়ত, এটি যদি কাকতালীয় ঘটনা না হয় তবে তা কেন হয়? যেমন, উদাহরণস্বরূপ, কিছু বৈশিষ্ট্য কেবল প্রোগ্রামিং ভাষায় প্রয়োগ করা যেতে পারে আপনি যদি বলুন, এটি জেআইটি-সংকলন করছে?


@ ইয়ানিসরিজস দুঃখিত, এটি কোনও উদ্ধৃতি নয়। আমি শুধু এটি হাইলাইট করতে চেয়েছিলাম। আমি এটি সম্পাদনা করব।
অ্যাপ্রেন্টিসহ্যাকার

1
শীতল, আমি যদিও এটি একটি উদ্ধৃতি ছিল না তবে এটি উত্তরদাতাদেরকে ভেবেছিল এটি এক এবং এটি খণ্ডন করার চেষ্টা করবেন না (বা অন্ধভাবে এটির সাথে একমত হতে হবে) ... আমি একই ধরণের লক্ষ্য করেছি তবে দুর্ভাগ্যক্রমে ভাল নেই উত্তর.
ইন্নিস

@ আর.মার্টিনহো ফার্নান্দেস দুঃখিত, আমি সে সম্পর্কে অবগত ছিলাম না। আমি এটি সম্পাদনা করব (আবার)
শিক্ষানবিসহ্যাকার

4
পার্ল ব্যবহারকারীর সংজ্ঞায়িত প্রকারের জন্য গতিশীলভাবে টাইপ করা হয়, স্থায়ীভাবে অ্যারে, হ্যাশ, স্কেলার এবং সাবরুটাইনগুলির ক্ষেত্রে পৃথকভাবে টাইপ করা হয় এবং কঠোর, ব্যাখ্যামূলক এবং জেআইটি সংকলিত (অবশ্যই একই সময়ে নয়) মাধ্যমে কঠোরভাবে টাইপ করা হয় ... যখনই কেউ চেষ্টা করে ভাষার নকশা অনুধাবন করতে, কিছু পার্ল নিক্ষেপ করা সবসময় মজাদার ...
ইয়ানিস

3
"লেনিয়েন্ট সিনট্যাক্স" বনাম "কঠোর বাক্য গঠন" বলতে কী বোঝ? এগুলি সমস্ত আনুষ্ঠানিক ভাষা এবং সিনট্যাক্স ত্রুটিযুক্ত উত্স কোডটি কেউ চালিত করবে না।
নিকি

উত্তর:


17

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

এবং হ্যাঁ, টাইপিংয়ের সিনট্যাক্সের সাথে কোনও সম্পর্ক নেই, এটি ভাষার একটি শব্দার্থবিজ্ঞানের দিকে থাকে, যদি না এটি সি ++ এর মতো বিকৃত কিছু হয় যেখানে আপনি সমস্ত টাইপিং তথ্য উপলব্ধ না করে পার্সও করতে পারবেন না।

একটি সাধারণ প্রবণতা হ'ল যে ভাষাগুলি খুব দীর্ঘকাল ধরে বিকশিত হয়েছিল এবং সিনট্যাক্সের বিচ্যুতির বিরুদ্ধে কোনও নকশার সুরক্ষা নেই, তাড়াতাড়ি বা পরে সিন্ট্যাক্টিক জঘন্যতায় বিবর্তিত হবে।


আমাকে "হোমসাইকোনিক" সন্ধানের জন্য +1 ... এবং পিএইচপি-তে সূক্ষ্ম অনুমোদনের জন্য ...
ইয়ান্নিস

1
+1, যে ভাষাগুলি খুব দীর্ঘকাল ধরে বিকশিত হয়েছিল এবং এতে কোনও নকশাকর্মী সুরক্ষা নেই , এটি কি ডেলফি / অবজেক্ট-পাস্কেলকে বোঝায়?
শিক্ষানবিসহ্যাকার

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

1
@ এসকে-যুক্তি - কারণ এটি জটিল এবং টুরিং-সম্পূর্ণর অর্থ এই নয় যে এটি কমপক্ষে প্রোগ্রামের বাক্য গঠনের একটি খুব বড় অংশ নয়। বিভিন্ন ভাষার পার্সিং করা টুরিং-সম্পূর্ণ, এটি যাদুতে এমন কিছুকে বিশ্লেষণ করে না যা "সিনট্যাক্সের সাথে কিছুই করার নেই"। সিনট্যাক্সটি "সুযোগ" সম্পর্কে নয়, এটি কোনও ভাষায় বিবৃতি গঠনের নিয়ম সম্পর্কে - এই বিবৃতিগুলির অর্থ কী তা নিয়ে কিছু না বলে। টাইপ চেকিং এবং টাইপ আনফারেন্সগুলি প্রোগ্রামের সিনট্যাক্স ট্রিগুলিতে এগুলি কার্যকর না করে চালিত করে - তারা প্রোগ্রামের কাঠামো সম্পর্কে কিছু না বলেই নির্ধারণ করে ...
জ্যাক

1
@ জ্যাক, আপনি সিনট্যাক্স কী তা পুনরায় সংজ্ঞায়িত করার চেষ্টা করছেন। এখানে এমন কোনও ব্যবহারিক ভাষা নেই যার জন্য একটি টুরিং-সম্পূর্ণ পার্সার প্রয়োজন, বেশিরভাগ প্রাসঙ্গিক মুক্ত ছাড়া আর কিছু নয়। এবং এখানেই সিনট্যাক্স থাকা উচিত। দয়া করে অন্য কোথাও এটি (ইতিমধ্যে খুব প্রসারিত) ধারণাটি প্রসারিত করবেন না। এবং আমি ইতিমধ্যে কারি-হাওয়ার্ড isomorphism উল্লেখ করেছি - এটি নিছক নির্ভুলতার নিয়মের বাইরে অনেকটা শব্দার্থবিজ্ঞানের কথা। আমি মনে করি, খুব শব্দটি " type checking" অত্যন্ত বিপরীতমুখী এবং এটি ব্যবহার করা উচিত নয়, এটি অত্যন্ত বিভ্রান্তিকর, এটি টাইপ সিস্টেমগুলির প্রকৃতির প্রতিফলন করে না।
এসকে-যুক্তি 10

6

বেশিরভাগ ক্ষেত্রে এটি একটি কাকতালীয় ঘটনা।

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

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

আপনি যদি ফর্ট্রান (সংকলিত) এবং বেসিক (ব্যাখ্যা করা বা সংকলন) এর মতো পুরানো ভাষাগুলির দিকে লক্ষ্য করেন তবে তাদের খুব কঠোর বাক্য গঠন এবং শব্দাবলীর বিধি রয়েছে / ছিল। [বেসিকের ক্ষেত্রে, পুরাতন বেসিককে বিল না বলে, আপনাকে তার আগে আসলটিতে ফিরে যেতে হবে]]

অন্যদিকে, এপিএল (মজাদার একগুচ্ছ) এর মতো অন্যান্য পুরানো জিনিসগুলির দিকে তাকানোতে এটির মতো গতিশীল টাইপিং ছিল। এটি সাধারণত ব্যাখ্যা করা হলেও সংকলিতও হতে পারে।

লেনিয়েন্ট বাক্য গঠন একটি কঠিন - যদি এর অর্থ যদি আপনার কাছে এমন কিছু থাকে যা thatচ্ছিক বা অনুমান করা যায় তবে এর অর্থ ভাষাটির যথেষ্ট সমৃদ্ধি রয়েছে যে এটি সমাপ্ত হতে পারে। তারপরে আবার বেসিকের অনেক বছর আগে যখন "এলইটি" বিবৃতিটি alচ্ছিক হয়ে উঠল!

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

এখানে আমার মাথার উপরের অংশের কয়েকটি উদাহরণ রয়েছে:

  • এপিএল: গতিশীল টাইপিং। সাধারণত ব্যাখ্যা করা হয়। 1960/1970 এর দশক থেকে এসেছে।
  • বেসিক: শক্তিশালী বা গতিশীল টাইপিং। ব্যাখ্যা করা বা সংকলিত 1970 এবং এর বাইরেও অনেক কিছু।
  • ফরট্রান: শক্ত টাইপিং। সংকলিত। 1960 বা তারও আগের
  • Algol68: শক্ত টাইপিং। সংকলিত। 1960 এর।
  • পিএল / 1: শক্তিশালী টাইপিং। সংকলিত। 1960 এর।
  • পাস্কাল: শক্ত টাইপিং। সংকলিত। 1970-এর দশকে। (তবে ১৯৮০ এর দশকে জেআইটি সংকলকগুলির সাথে পি-সিস্টেম সংকলকগুলির খুব মিল ছিল!)
  • প্রথম দিনগুলিতে ডিসি দ্বারা ফোর্টরান এবং অন্যদের কিছু বাস্তবায়ন আংশিকভাবে সংকলিত এবং আংশিকভাবে ব্যাখ্যা করা হয়েছিল।
  • স্মার্টটাক: গতিশীল টাইপিং। বাইকোডে সংকলিত যা ব্যাখ্যা করা হয়। 1980 এর।
  • প্রোলগ: আরও অদ্ভুততা। প্রায়োগিক। সংকলিত (টার্বো প্রোলগ, কেউ?) 1980 এর।
  • সি: শক্ত (হা হা) টাইপিং। সংকলিত। 1960's..today।
  • অ্যাডা: উবার-স্ট্রং টাইপিং। সংকলিত। 1980 এর।
  • পার্ল: ডায়নামিক টাইপিং। (শক্তিশালী বাক্য গঠন)। বুঝিয়ে দিলেন। 1990 এর (?)।

আমি যেতে পারে।

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

আপডেট: কারণ আমি যথেষ্ট পরিষ্কার ছিল না।

টাইপিং বিভিন্নভাবে পরিবর্তিত হতে পারে।

সংকলন-স্থির স্থির স্ট্যাটিক টাইপিং সাধারণ (যেমন, সি, আদা, সি ++, ফোরটান ইত্যাদি)। এখানেই আপনি কোনও টাইপের একটি জিনিস ঘোষণা করেন এবং এটি চিরকালের জন্য।

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

এবং তারপরে আলগা টাইপিং রয়েছে, উদাহরণস্বরূপ পিএইচপি যেখানে আপনি সত্যিকার অর্থে উদ্ভট কাজগুলি করতে পারেন যেমন একটি ভেরিয়েবলের সাথে একটি সংখ্যার পূর্ণসংখ্যা (উদ্ধৃত, তাই এটির একটি স্ট্রিং) নির্ধারণ করুন এবং তারপরে একটি সংখ্যা যুক্ত করুন। (উদাঃ '5' + 5 এর ফলাফল 10 হয়)। এটি উদ্ভট ভূমি, তবে অনেক সময় খুব দরকারী।

যাইহোক, এগুলি ভাষাতে নকশাকৃত বৈশিষ্ট্য। বাস্তবায়ন কেবল এটি ঘটায়।


13
শক্তিশালী টাইপিং ডায়নামিক টাইপিংয়ের সমকক্ষ নয়। এটি দুর্বল টাইপিংয়ের সমকক্ষ। ডায়নামিক টাইপিংয়ের প্রতিরূপ হ'ল স্ট্যাটিক টাইপিং: একটিতে একটি প্রোগ্রামের এক্সপ্রেশনগুলির ধরণগুলি স্ট্যাটিকভাবে (যেমন প্রোগ্রামটি পরিচালনা না করে) জানা যায়; অন্যটিতে প্রকারগুলি কেবল গতিশীলভাবে জানতে পারে (যেমন প্রোগ্রামটি চালানো আবশ্যক)।
আর মার্টিনহো ফার্নান্দেস

হ্যাঁ এবং বেসিক এবং এপিএল উভয়ের কিছু রূপগুলি 1970 এর দশকের শেষদিকে এটি করছিল। এপিএল প্রকারগুলি আজ আমরা সেগুলি বুঝতে পারছি না (সর্বজনীন টাইপিত পূর্ণসংখ্যা / ফ্লোটের মতো জিনিস তবে এটি ভেক্টর, স্ট্রিং এবং বহু-মাত্রিক ম্যাট্রিকও হতে পারে)।
শীঘ্রই_

একজন ফোর্টরান দোভাষী এখনও ব্যাপকভাবে ব্যবহৃত হয় (দেখুন সের্নালিব এবং PAW)। এবং এর বংশধর, রুট, একটি সি ++ দোভাষীর উপর নির্মিত।
এসকে-যুক্তি

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

@ ভ্যাটাইন - আমি আসলে সংকলন সময়ে শক্তিশালী বলব, রান সময়ে অ-অস্তিত্বশীল - যদি আপনি এটি সেভাবে চান তবে। আপনি বিভিন্ন ভাষায় পয়েন্টার এবং তাদের সমতুল্য ব্যবহার করে এটি করতে পারেন। এমনকি বৈকল্পিক রেকর্ড ব্যবহার করে ধ্রুপদী পাস্কল এবং ইউএনএইচসিইকিকে ব্যবহার করতে আদায় (যদিও এটি কঠিন, তবে এটি সম্ভব) is
দ্রুত_ন

2

আমি মনে করি এটি অন্য উপায়ে রয়েছে: প্রয়োগটি সিনট্যাক্সের উপর নির্ভর করে। উদাহরণস্বরূপ, যদি আপনার সিনট্যাক্স প্রতিবিম্বের জন্য অনুমতি দেয় তবে বাস্তবায়ন অবশ্যই একটি রানটাইম সরবরাহ করে যা এটি সমর্থন করে।


@IntermediateHacker: কিন্তু এটা জাভা, তাই আমি সন্ত্রস্ত হওয়া উচিত
sehe

2

আপনার পর্যবেক্ষণটি মূলত ইতিহাসের ফলস্বরূপ আমি দ্রুত_আপনার সাথে সাধারণত একমত হই। এটি বলেছিল, অন্তর্নিহিত যুক্তি এই জাতীয় কিছুতে ফোটে:

The more modern a language is, the more comfortable it should be to use.

(সত্যিই একটি উদ্ধৃতি নয়, কেবল আমার নিজস্ব সূত্র) I আমি যখন comfortableএখানে লিখি , আমি আপনাকে যা বলেছিলাম তা উল্লেখ করি best features of both। আরও স্পষ্ট করে বলতে গেলে, আমি স্থির / গতিশীল টাইপিং বা কঠোর / লেন্সিয়েন্ট সিনট্যাক্সের পক্ষে বা বিপক্ষে কথা বলতে চাই না। পরিবর্তে, ভাষাটির সাথে কাজ করার সময় বিকাশকারীদের উপর দৃষ্টি নিবদ্ধ করা এবং তাদের স্বাচ্ছন্দ্য-স্তর বাড়ানো দেখতে গুরুত্বপূর্ণ।

এখানে কয়েকটি কারণ রয়েছে, যা পূর্ববর্তী উত্তরে উল্লেখ করা হয়নি, যা আপনাকে এই বিষয়গুলি পর্যবেক্ষণ করার জন্য কিছু ধারণা দিতে পারে (এবং প্রোগ্রামিং ল্যানুজেজ বিকাশের ইতিহাসের উপর ভিত্তি করে):

  • আমাদের আজকাল শত শত প্রোগ্রামিং ল্যানগেজ রয়েছে। যখন একটি নতুন আসে, এটি কীভাবে একটি বিস্তৃত শ্রোতা খুঁজে পাবে? এটিই মূল কারণ, কেন নতুন ভাষাগুলি বিকাশকারীদের আরাম-স্তর বাড়ানোর চেষ্টা করে। ভাষাটি যদি কোনও পুরোনো হিসাবে একই কাজ করতে পারে তবে এটি আরও সহজ / সরল / আরও মার্জিত / ইত্যাদি করতে পারে। আপনি আসলে স্যুইচিং বিবেচনা করতে পারেন।

  • শিক্ষার বক্ররেখা সেই সাথে এক সাথে যায়। অতীতে, আমাদের কয়েকটি ভাষা ছিল এবং একটি শেখার জন্য সময় ব্যয় করা উপযুক্ত ছিল। এমনকি যদি এর অর্থ অনেক সময় বিনিয়োগ করা হয়। আপনি যদি এমন একটি ভাষা নিয়ে এসে থাকেন যা বিকাশকারীরা খুব দ্রুত শিখতে পারে সান্ত্বনা আবার বাড়ানো হয়েছে। যেকোন ধরণের জটিলতা (f.ex., জটিল জড়িত সিনট্যাক্স) এর জন্য ক্ষতিকারক এবং তাই নতুন ভাষায় আরও কমিয়ে আনা হয়।

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

সুতরাং সাধারণভাবে, প্রোগ্রামিং ভাষা এবং সংকলকগুলি সাধারণত শেষ-ব্যবহারকারী অ্যাপ্লিকেশনগুলির অনুরূপ একটি বিকাশ দেখেছিল:

  1. প্রাথমিক পর্যায়ে: এটি রাখা একটি দুর্দান্ত জিনিস, তবে রক্তক্ষরণ প্রান্ত প্রযুক্তি সবেমাত্র আরাম / ব্যবহারযোগ্যতা / কী-না ব্যয় করে এটি কাজ করে।
  2. প্রযুক্তিগত উন্নতি: আমরা এই জিনিসগুলি আরও দৃust়তর, দ্রুত এবং সহজতরভাবে তৈরি করতে পারি।
  3. ফোকাস ব্যবহারকারীর দিকে ফেলা: একইভাবে ওয়েব 2.0 আন্দোলনের দিকে যেমন ব্যবহারকারীর অভিজ্ঞতার উপর দৃষ্টি নিবদ্ধ করে, নতুন প্রোগ্রামিং ভাষাগুলি বিকাশকারী দৃষ্টিকোণকে কেন্দ্র করে।

(Not a quote really, just my own formulation.)ঠিক আছে, আপনি এটিকে কোড হিসাবে ফর্ম্যাট করেছেন, ব্লককোট হিসাবে নয়, তাই আমি মনে করি না যে কেউ এটিকে একটি উদ্ধৃতি বলে মনে করেছে :)
yannis

3
স্বাচ্ছন্দ্য স্পষ্টভাবে একটি স্বাদ (যা সর্বদা সম্পূর্ণরূপে বিষয়গত) এর উপর নির্ভর করে। আমি যে ভাষাটির সাথে সর্বাধিক স্বাচ্ছন্দ্য বোধ করি সেটির নকশা ১৯৫৯ সালে করা হয়েছিল এবং আমি এই শতাব্দীতে প্রকাশিত কয়েকটি ভাষার সাথেই আচরণ করতে পারি না।
এসকে-যুক্তি

1
আরামও উদ্দেশ্য নির্ভর করে। ওয়াশিং মেশিন নিয়ন্ত্রকের জন্য 8 কে এমবেডেড মাইক্রোতে পিএইচপি বা প্রোলগ চালানো প্রোগ্রামে "আরামদায়ক" হতে পারে, তবে এটি এটিকে ফিট করে তুলনামূলক শক্ত এবং গ্রহণযোগ্য পারফরম্যান্সের সাথে চালানো শক্তও নয়।
তাড়াতাড়ি _

0

একটি প্রদত্ত প্রোগ্রামিং ভাষা সংযোজক রানটাইম সিদ্ধান্ত ("এই পরিবর্তনশীলটি কী ধরণের?", ইত্যাদি ইত্যাদি) ছাড়াই এটি সম্পাদনযোগ্য কোডে কীভাবে এটি হ্রাস করা যায় তা নির্ধারণের জন্য সংকলকটির জন্য যথেষ্ট শব্দার্থক তথ্য প্রকাশ বা সীমাবদ্ধ করতে পারে বা না করতে পারে Some কিছু ভাষা স্পষ্টভাবে তৈরি করার জন্য ডিজাইন করা হয়েছে এই সীমাবদ্ধতা বাধ্যতামূলক, বা নির্ধারণ করা সহজ।

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

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

অতীতে, একটি প্রোগ্রামিং ভাষা এবং এর বাস্তবায়নটি সম্ভবত কিছু হার্ডওয়্যার সীমাবদ্ধতার মতো ফিট হয়ে উঠতে পারে যেমন দোভাষী 4k বা 16k-তে ফিট করতে পারে, বা সিপইউয়ের এক মিনিটেরও কম সময়ের মধ্যে সংকলকটি শেষ হতে পারে কিনা। মেশিনগুলি দ্রুততর হয়ে উঠলে, প্রোগ্রামার রিটার্ন কীটি চাপতে পারে বা পূর্ববর্তী সংকলিত প্রোগ্রাম উত্স কোডটির চেয়ে কিছুটা পুরানো হার্ডওয়্যার অপ্টিমাইজড সংকলিত এক্সিকিউটেবল চালাতে পারে তার চেয়ে দ্রুত পূর্বের বর্ণিত কিছু প্রোগ্রাম সংকলন করা সম্ভব হয়েছে (পুনরায়)।

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