সংকলকগুলিতে কোন কম্পিউটার বিজ্ঞানের বিষয়গুলির প্রবর্তক কোর্স অনুসরণ করা প্রয়োজন? [বন্ধ]


10

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

আমি আসন্ন সেমিস্টারে সংকলকগুলিতে একটি প্রাথমিক পাঠ্যক্রম নেওয়ার পরিকল্পনা করছি যা নিম্নলিখিত সিলেবাসটি অন্তর্ভুক্ত করেছে:

লেক্সিকাল বিশ্লেষণ, সিনট্যাক্স বিশ্লেষণ, শব্দার্থ বিশ্লেষণ, রান-টাইম এনভায়রনমেন্ট, অন্তর্বর্তী প্রতিনিধি, কোড জেনারেশন, নিবন্ধন বরাদ্দ, নির্দেশ নির্বাচন এবং সময়সূচী, স্থানীয় এবং গ্লোবাল কোড অপ্টিমাইজেশনের পরিচিতি, ডেটা ফ্লো বিশ্লেষণ

আমার প্রশ্নটি হ'ল, এই কম্পিউটার কোর্সের আগে কোন কম্পিউটার বিজ্ঞানের বিষয়গুলি জানা উচিত? যদি হ্যাঁ, আপনি দয়া করে এই কোর্সগুলি তালিকাভুক্ত করতে পারলে দুর্দান্ত হবে।


1
আপনার স্কুলে নির্ভর করে। খনিটি তেমন শক্ত ছিল না, তাই পূর্বশর্তগুলি ছিল মৌলিক ডেটা স্ট্রাকচার এবং বেসিক অ্যালগরিদম - এগুলিই। দুর্ভাগ্যক্রমে তারা সংকলকগুলি alচ্ছিক করে তুলেছে এবং আমি বের হয়েছি এবং এটি গ্রহণ করি নি।
কাজ

উত্তর:


8

নিম্নলিখিত বিষয়গুলি সম্পর্কে আপনার সম্ভবত একটি সাধারণ বোঝা থাকা উচিত:

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

Ptionচ্ছিক, এবং সম্ভবত অনেক সাহায্য করবে:

  • অপারেটিং সিস্টেম ডিজাইন (প্রক্রিয়া পরিচালনা, কার্নেল ডিজাইন, সিঙ্ক্রোনাইজেশন, সময়সূচি, ইভেন্টস, লকস, থ্রেড এবং স্ট্যাক বনাম হিপ)

4

ঠিক আছে, আমি আমার নিজস্ব সংকলক লেখার ক্ষেত্রে কিছুটা কাজ করেছি এবং আমি বলব যে মূল শর্তটি আপনি ডেটা স্ট্রাকচারের ক্লাসে যে জিনিসটি পাবেন তার একটি দৃ understanding় বোঝা। বিশেষত, আপনি যদি পুনরাবৃত্তি, গাছ এবং মানচিত্র / হ্যাশ টেবিল বুঝতে না পারেন তবে আপনি খুব দ্রুত হারিয়ে ফেলতে চলেছেন একটি সংকলক তৈরি করতে শেখার চেষ্টা করে।


3

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

কোর্সের স্তরটির উপর নির্ভর করে, আশা করা যায় যে সুপারসেলারার প্রক্রিয়াজাতকরণ এবং এর মতো সম্পর্কে আপনি কিছুটা জানেন।


1
এটি কেবলমাত্র সত্য যদি আমরা ধরে নিই যে প্রশ্নে সংকলকটি মেশিন কোড তৈরি করছে এবং কোনও ধরণের বাইটকোড নয়।
ম্যাসন হুইলারের

3

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


2

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


0

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


0

আপনার ইউনি উপর নির্ভর করে তবে বেশিরভাগ ক্ষেত্রে এই প্রাক প্রয়োজনীয়তা প্রয়োজন:

=> Discrete Mathematics
Should include: propositional logic, predicate logic, set theory etc etc 

=> General Concepts of Programming (In any language of choice would be okay)
=> Algorithms and Data Structures
Should include: data structures, abstract data types, recursive algorithms
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.