একটি পার্স ট্রি আপডেট করার জন্য দক্ষ অ্যালগরিদম


14

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

আগাম ধন্যবাদ!


1
হাই, এবং স্বাগতম! আমি এই বিষয়ে বিশেষজ্ঞ নই, তবে আমি মনে করি আপনি যে কীওয়ার্ডটি সন্ধান করছেন তা হ'ল ইনক্রিমেন্টাল পার্সিং বা ইনক্রিমেন্টাল সংকলন
এমএস দৌস্তি

@ সাদেক পয়েন্টারের জন্য ধন্যবাদ! আপনি কিছু বিবরণ সহ উত্তর যুক্ত বিবেচনা করবেন? এটি প্রশংসিত হবে!
Agos

উত্তর:


9

@ অ্যাগোসের অনুরোধ অনুসারে, আমি মন্তব্যটি একটি উত্তরে পরিণত করেছি।

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

আপডেট চিকিত্সার জন্য, আপনি এই কাগজপত্রগুলি একবার দেখে নিতে পারেন:

আরও তথ্য: পার্সিং / সংকলনের জন্য (কমপক্ষে) দুটি পন্থা রয়েছে:

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

1

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

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