সি প্রিপ্রসেসর এর উত্স কি?


30

সি প্রিপ্রোসেসরটি সি এর সাথে সংযুক্ত, তবে এর মূল ভাষা থেকে একেবারে আলাদা সিনট্যাক্স রয়েছে:

  • সিনট্যাক্টিকভাবে তাৎপর্যপূর্ণ সাদা স্থান (লাইনের শেষে একটি বিবৃতি সমাপ্ত করে, ম্যাক্রো প্রতিস্থাপনের তালিকাটি নির্ধারণের পরে ব্যবধান)

  • পরিবর্তে braced ব্লক শব্দ ভিত্তিক ব্লকগুলিতে, elifপরিবর্তেelse if

  • ঘোষণা-প্রতিবিম্ব-ব্যবহারের পরিবর্তে কী-ওয়ার্ড-নেতৃত্বাধীন সংজ্ঞা, =মান সংজ্ঞার জন্য নয়

  • বিকল্প স্ট্রিং সিনট্যাক্সের ইঙ্গিত ( #include <>বনাম #include "")

  • অলস মূল্যায়ন (সি এর স্পষ্টতই; তবে 6..১০.৩.১ ম্যাক্রো প্রসারণের একটি নির্দিষ্ট ক্রম হিসাবে বোঝা যায়, যে কয়েকটি জায়গায় গুরুত্বপূর্ণ)

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

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

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

এটি কেন এইভাবে ডিজাইন করা হয়েছিল, বা নির্মাতাদের প্রভাবগুলি কী ছিল তার কোনও রেকর্ড আমাদের রয়েছে?



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

উত্তর:


17

Http://www.jslint.com/chistory.html থেকে (ডেনিস এম রিচি রচিত "সি ভাষার উন্নতি"):

অন্যান্য অনেক পরিবর্তন 1972-33 এর আশেপাশে ঘটেছিল, তবে সর্বাধিক গুরুত্বপূর্ণ ছিল প্রিপ্রোসেসরটি পরিচয় করিয়ে দেওয়া, আংশিকভাবে অ্যালান স্নাইডারের আহ্বানে [স্নাইডার 74৪], তবে বিসিপিএল এবং পিএল / আই-তে উপলব্ধ ফাইল-অন্তর্ভুক্তি ব্যবস্থার উপযোগিতার স্বীকৃতি হিসাবেও। এর আসল সংস্করণটি অত্যন্ত সহজ ছিল এবং এতে কেবলমাত্র ফাইল এবং সরল স্ট্রিং প্রতিস্থাপন অন্তর্ভুক্ত ছিল: # অন্তর্ভুক্ত এবং প্যারামিটারলেস ম্যাক্রোগুলির # ডেফাইন। এরপরেই, যুক্তি এবং শর্তসাপেক্ষ সংকলনের সাথে ম্যাক্রোগুলি অন্তর্ভুক্ত করার জন্য এটি বেশিরভাগ মাইক লেস্ক এবং তারপরে জন রেজার দ্বারা প্রসারিত করা হয়েছিল। প্রিপ্রোসেসরটি মূলত ভাষাতেই একটি itselfচ্ছিক সংযোজন হিসাবে বিবেচিত হত। প্রকৃতপক্ষে, কয়েক বছর ধরে, উত্স প্রোগ্রামটির শুরুতে একটি বিশেষ সংকেত না থাকলে এটি চালিত হয়নি। এই মনোভাব অব্যাহত থাকে, এবং প্রাথমিক ভাষার রেফারেন্স ম্যানুয়ালগুলিতে বাকী ভাষার সাথে প্রিপ্রোসেসরের সিন্ট্যাক্সের অসম্পূর্ণ সংহতকরণ এবং এর বর্ণনাকে অপ্রচলিত উভয়ের ব্যাখ্যা দেয়।

উপরের উদ্ধৃতিতে লিঙ্কিত [স্নাইডার 74৪] রেফারেন্সের ৪ ধারায় অ্যাকাউন্ট থেকে এটি উপস্থিত হয়েছে যে অ্যালান স্নাইডার একটি বহনযোগ্য (বর্তমানে কেউ "retargetable" বলতে পারেন) সি সংকলকটিতে কাজ করছিলেন। সম্ভবত এটি প্রিপ্রোসেসর জিজ্ঞাসা করার প্রেরণা ছিল।

ভাষা হিসাবে সি-প্রিপ্রসেসর নিজেই ডিজাইনে যদিও আমি কোনও অতিরিক্ত বিশদ খুঁজে পাইনি।


1
নোট করুন যে স্নাইডার এমআইটি থেকে বেল ল্যাবগুলিতে এসেছিলেন, যেখানে মিডাস এসেম্বলারের ডিফাইন, আইএফডিএফ এবং আইএফএনডিএফ বিবৃতি রয়েছে। কাকতালীয়?
লার্স ব্রিংখফ

0

আমি কেবল এটি যোগ করতে পারি যে সমাবেশ ভাষাগুলির জন্য ম্যাক্রো এসেম্বলার প্রি-প্রসেসরগুলি সিপিপির সাথে খুব সমান দেখানো খুব সাধারণ বিষয় ছিল।

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