Магія (програмування): відмінності між версіями

[неперевірена версія][неперевірена версія]
Вилучено вміст Додано вміст
Скасування редагування № 20578779 користувача Olexa Riznyk (обговорення) помилково
Рядок 49:
| quote = It is not safe to copy these objects within the program; sometimes their addresses may be 'magic'.
}}</ref>без магії. Тобто, середовище виконання може помістити вихідний файл в {{не перекладено|жорстко закодованому|||hard-coded}} діапазоні адрес, і не забезпечує поведінку дескриптора файлу в створеній копії користувача. Отже, стандартні бібліотечні підпрограми приймають покажчики на файл, типу <tt>FILE *</tt>.
* У Perl 5, оператор <tt>while(&lt;</tt><var>file_handle</var><tt>&gt;)</tt> неявно привласнює зчитаний рядок з файлу, <tt>&lt;</tt><var>file_handle</var><tt>&gt;</tt> змінній <tt>$_</tt>, і застосовує <tt>defined()</tt> функцію до виразу, так що будь-який успішно прочитаний рядок, навіть <tt>"0"</tt> або [[порожній рядок]], обчислюється як [[Істинне{{не перекладено|істинне значення]]|||Truth value}} і продовжує цикл <tt>while()</tt>. Цього не відбувається з <tt>&lt;</tt><var>file_handle</var><tt>&gt;</tt> де-небудь ще, або для циклу <tt>while()</tt> з будь-яким іншим контрольним значенням .<ref name="perlop">{{Cite web|title=perlop - perldoc.perl.org|url=http://perldoc.perl.org/perlop.html|date=7 September 2010|accessdate=17 February 2011}}</ref>
* У [[емулятор]]і, особливо в розвитку, [[системний виклик]] в емульованої машини може бути магією; коли їх визивають, емулятор може працювати на [[машинний код| машинному коді]] для зручності, швидкості або доступу до фізичного обладнання, а також налаштувати емульований процесор і пам'ять, як якщо б він був виконаний за допомогою вихідного коду.
** Наприклад, <tt>CALL</tt> твердження на язиці {{не перекладено|BBC BASIC|||BBC BASIC}} В магічно оброблює адреса системних викликів в операційній системі {{не перекладено|Acorn MOS|||Acorn MOS}}; замість того, щоб намагатися перейти до ARM коду на ці адреси, воно викликає [[Переривання | програмне переривання]] в системі [[RISC OS]] еквівалентне системному виклику.<ref name="bbcbasic">{{cite book