Жоғарыға бағытталған пайдалану - Upwards exposed uses

Жоғарыға бағытталған пайдалану немесе қол жетімді пайдалану,[1] деген ұғым компилятор теориясы болып табылатын көшірме тарату жинақтау кезеңі.[2]

Қолданады

Кезінде көшірме тарату кезеңі бағдарламаны құрастыру, мақсаттың даналары олардың мәндеріне арналған тапсырмалармен ауыстырылады. Бұл үдеріс барысында компилятор мақсаттың қандай даналарына қол жеткізіліп жатқанын түсінуі қажет, сондықтан тиісті ауыстыру орын алуы мүмкін. анықтамаға жету талдау кезінде.[3] Бұл орындалу алдында кодты оңайлату мақсатында жасалады: егер тапсырманың жоғарыға бағытталған қолданылу саны нөлге тең болса, бұл кодтың соңғы нәтижесіне ықпал етпейді және оны қауіпсіз түрде алып тастауға болады.[1] Бұл компиляция кезеңінде код қауіпсіздігін жақсарту үшін де пайдалы.[4]

Мысал

Келесі псевдокодты қарастырыңыз:

1 х = 12 ж = з3 4 егер Жалған:5     х = 06 басқа:7     х = ж + 2

5-сызық ешқашан болмайды деп болжауға болады, өйткені бұл нүкте үшін нөлге тең жоғары бағытта көрсетілген. Сондықтан мұны жеңілдетуге болады:

1 ж = з2 х = з + 2

Бұл түпкілікті нәтижеге әкеледі, оны құрастыру онша күрделі емес, ал іске қосу тиімдірек.[2] Бұл сонымен қатар анықтамасына сәйкес келеді анықтамаға жету: Бұл тұрғыда жоғары ағынды талдау анықтамаға жету қажеттілігін көрсету үшін қолданылатын әдіс болды. Қосымша әдістемелер әртүрлі ағынды немесе күрделі цикл проблемаларын, мысалы, циклдардың әртүрлі формалары сияқты күрделі талдау жасауға мүмкіндік береді.[4]

Сондай-ақ қараңыз

Әдебиеттер тізімі

  1. ^ а б Харрольд, Мэри Жан (күз 2009). «Негізгі талдау» (PDF). Georgia Tech - Есептеу колледжі. CS 6340: Бағдарламалық жасақтаманы талдау және тестілеу. Атланта, Джорджия, АҚШ: Джорджия технологиялық институты. Мұрағатталды (PDF) түпнұсқасынан 2020-06-20. Алынған 2020-06-12.
  2. ^ а б Ахо, Альфред Вайно; Лам, Моника Син-Линг; Сети, Рави; Ульман, Джеффри Дэвид (2006). Құрастырушылар: принциптері, әдістері мен құралдары (2 басылым). Бостон, Массачусетс, АҚШ: Аддисон-Уэсли. ISBN  0-321-48681-1. OCLC  70775643.
  3. ^ Коре, Аамод (2020). «Жоғарыға бағытталған қолдану». Торонто, Онтарио, Канада: Информатика департаменті, Торонто университеті. Мұрағатталды түпнұсқасынан 2020-06-20. Алынған 2020-06-12.
  4. ^ а б Бержеретти, Жан-Франсуа; Карре, Бернард А. (1985-01-02). «Бағдарламалардың ақпараттық ағыны және мәліметтер ағынының талдауы». Бағдарламалау тілдері мен жүйелері бойынша ACM транзакциялары. Есептеу техникасы қауымдастығы. 7 (1): 37–61. дои:10.1145/2363.2366. Мұрағатталды түпнұсқасынан 2020-06-20. Алынған 2020-06-20.