সি # সংকলক কোন ভাষায় রচিত?


148

আমি উত্স কোড তাকান http //references Source.microsoft.com/ এবং এটি সমস্ত উত্স কোড সি # তে উপস্থিত রয়েছে।

আমি নতুন সি # সংকলক প্ল্যাটফর্মের ( রোজলিন ) জন্য উত্স কোডও দেখেছি এবং এটি সি # তেও রয়েছে। কীভাবে সম্ভব? সি # ভাষার সংকলক সি # তে লেখা আছে? নাকি আমি স্পষ্ট কিছু মিস করছি? সি # সংকলক যদি সি # তে লেখা থাকে তবে এটি কীভাবে কাজ করবে?


12
অনেক সংকলক তাদের সংকলিত ভাষায় লেখা হয় - আরও জানার জন্য গুগল বুটস্ট্র্যাপিং
পল রাউব

19
আমি মনে করি মূল সংকলকটি সি ++ তে লেখা হয়েছিল।
পাওয়ার্ডবাইআরেঞ্জ

44
ভাল, একটি হাতুড়ি অন্য হাতুড়ি ব্যবহার করে জাল করা যেতে পারে। এর পূর্ববর্তী সংস্করণ ...
ইউজিন শ।

10
আপনার পোস্ট করা লিঙ্কটি ফ্রেমওয়ার্ক লাইব্রেরির উত্স কোডের লিঙ্ক, সংকলকটির নয়।
স্টিভ

উত্তর:


229

মূল সি # সংকলক সি # তে লেখা হয়নি, এটি সি এবং সি ++ এ ছিল। নতুন রোজলিন সংকলকটি সি # তে লেখা ছিল, তবে প্রাথমিকভাবে পুরানো সংকলকটি সংকলিত হয়েছিল। একবার নতুন সংকলকটি সম্পন্ন হয়ে গেলে এটি নিজস্ব উত্স কোডটি সংকলন করতে সক্ষম হয়েছিল: এটিকে বুটস্ট্র্যাপিং বলা হয় ।


2
সুতরাং যখন "মূল সংকলক" তে কোনও পরিবর্তন আনতে হবে, তখন কি পুরানো সংকলক (সি, সি ++ তে লিখিত) দিয়ে সংকলন করতে হবে ?
ক্রিকটারঅনসো

10
"মূল সংকলক" পরিবর্তন করার দরকার নেই নতুন সংস্করণগুলি সংশোধিত হবে
ছদ্মনাম

1
@ ক্রিকেটারঅনসো, নতুন সংকলক পুরানোটিকে প্রতিস্থাপন করবে, সুতরাং পুরানোটি সংশোধন করার প্রয়োজন হবে না। তবে এমএস যদি এটি করতে চায় তবে তারা পুরানো সংকলকটি সি ++ সংকলক সহ পুনরায় সংকলন করবে, যেমনটি তারা আগের মতো করেছিল।
টমাস লেভেস্ক

3
@ থমাস লেভসেক স্ব-হোস্টিং বুট-স্ট্র্যাপিংয়ের শেষ ফলাফল।
arx

2
@ শ্রীরামস্যাকটিভেল, সংকলকের কোডটি নতুন কীওয়ার্ডগুলি ব্যবহার করতে পারে না, যতক্ষণ না কোনও সংকলক তাদের বোঝে until নতুনটি তৈরি করতে আপনি সর্বদা সংকলকের একটি পুরানো সংস্করণ ব্যবহার করেন।
থমাস লেভেস্ক

32

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

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

সংকলক ২.০ অবশ্যই একটি ভাষার কম্পাইলারে লিখতে হবে ১.০ প্রক্রিয়া করতে পারে তবে এটি অবশ্যই অপটিমাইজেশনের মতো আরও নতুন বৈশিষ্ট্য সহ কম্পাইলার 2.0 তৈরি করতে পারে। এরপরে আপনি সংকলক 2.0 ব্যবহার করে উত্স কোডটি পুনরায় সংকলন করতে পারেন এবং নিজের একটি আরও ভাল সংস্করণ তৈরি করতে পারেন। আবার, সংকলকটি জানে না যে এটি নিজের একটি অন্য সংস্করণ তৈরি করছে।

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


9
এবং কাগজের টেপটি কেবল কাগজের গর্তগুলির মধ্যে স্যুইচগুলি উল্টিয়ে দিচ্ছে। :-)
জ্যান লিংস

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

16

সংকলক হ'ল অন্য প্রোগ্রামগুলির মতো একটি প্রোগ্রাম। এটি সম্পর্কে যাদুকর বা বিশেষ কিছুই নেই। এটি কিছু ইনপুট নেয় এবং কিছু আউটপুট উত্পাদন করে। এই বিশেষ ক্ষেত্রে, ইনপুটটি কেবল সি # হবে এবং আউটপুটটি কেবল সিআইএল হতে পারে, তবে এটি ইনপুটটি ট্যাক্স রিটার্নের একটি সিরিজ এবং আউটপুট রিপোর্ট হওয়ার চেয়ে আলাদা নয়।


10
এটি আলাদা - এটি অনেক সহজ, -)।
পিটার - মনিকা

3
@ পিটারস্কিনিডার: লোকেরা পৌরাণিক যাদুকরী প্রাণী হিসাবে সংকলক ছুঁড়ে ফেলতে পছন্দ করে তবে শেষ পর্যন্ত তারা কেবল প্রোগ্রাম যা ইনপুটকে আউটপুটে রূপান্তর করে। খুব সুন্দর গ্রহের প্রতিটি প্রোগ্রাম কিছু ইনপুট পার্স করে, এটি বোঝার চেষ্টা করে এবং কিছু আউটপুটে পরিণত করে। কিছুটা অর্থে, প্রতিটি ইনপুট কোনও না কোনও ভাষায় লেখা প্রোগ্রাম, প্রতিটি প্রোগ্রামই একটি সংকলক।
Jörg ডব্লু মিটাগ

3
আমি আর একমত হতে পারি না। আমি শুধু বলতে চেয়েছিলাম ট্যাক্স আইনগুলি একটি ভয়াবহ জগাখিচুড়ি। বিপরীতে, আনুষ্ঠানিক ভাষা সাধারণত এমনভাবে সংজ্ঞায়িত হয় যা স্বয়ংক্রিয়করণের জন্য উপযুক্ত। যা ট্যাক্সের সাথে লেনদেন করা একটি প্রোগ্রামের চেয়ে একটি সাধারণ সংকলককে তর্কযোগ্যভাবে লেখার পক্ষে সহজতর করে তোলে। যদিও এরিক লিপার্ট রিট সি # সংকলকগুলির সাথে একমত হতে অনুরোধ করতে পারে, সিএফ। ব্লগস.এমএসডন.কম / বি / এসিক্লিপার্ট / অর্চিভ / ২০০১০/২০/২০১৮ । ওয়ান-পাস সি সংকলকগুলি থেকে অনেক দূর এসেছিল।
পিটার - মনিকা

1
@ পিটারস্কিনিডার: আহ, দুঃখিত, আমি আপনার মন্তব্যে 180 by :-D
জার্গ ডব্লু মিটাগ

আমি এই উত্তরটি সবচেয়ে পছন্দ করি কারণ এটি ওপির চিন্তাকে সবচেয়ে সরাসরি সম্বোধন করে। এটি "সমস্ত শক্তিশালী" সংকলককে ঘিরে কুয়াশাটি পরিষ্কার করে।
আসফ লেভি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.