moaminsharifi/fa-wiki-spell-checker huggingface dataset:
مامبرت ایکرز (به انگلیسی: Mumbert Acres) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان کالاوراس، کالیفرنیا واقع شده‌است. مامبرت ایکرز ۱٬۴۱۷ متر بالاتر از سطح دریا واقع شده‌است.
نلسون (به انگلیسی: Nelson) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان بیوت، کالیفرنیا واقع شده‌است. نلسون ۳۷ متر بالاتر از سطح دریا واقع شده‌است.
نلسونز کراسینگ (به انگلیسی: Nelsons Crossing) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان بیوت، کالیفرنیا واقع شده‌است. نلسونز کراسینگ ۹۴۶ متر بالاتر از سطح دریا واقع شده‌است.
نیو آلمیدن (به انگلیسی: New Almaden) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان سانتا کلارا، کالیفرنیا واقع شده‌است. نیو آلمیدن ۱۴۹٫۹۶ متر بالاتر از سطح دریا واقع شده‌است.
اوک گروو (به انگلیسی: Oak Grove) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان بیوت، کالیفرنیا واقع شده‌است. اوک گروو ۳۹ متر بالاتر از سطح دریا واقع شده‌است.
اوک گروو (به انگلیسی: Oak Grove) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان کالاوراس، کالیفرنیا واقع شده‌است. اوک گروو ۸۹ متر بالاتر از سطح دریا واقع شده‌است.
اوک گروو (به انگلیسی: Oak Grove) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان واشینگتن، آرکانزاس واقع شده‌است. اوک گروو ۴۰۱ متر بالاتر از سطح دریا واقع شده‌است.
اوک پارک استیتس (به انگلیسی: Oak Park Estates) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان کالاوراس، کالیفرنیا واقع شده‌است. اوک پارک استیتس ۳۴۳ متر بالاتر از سطح دریا واقع شده‌است.
اولد فوربستاون (به انگلیسی: Old Forbestown) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان بیوت، کالیفرنیا واقع شده‌است. اولد فوربستاون ۸۷۲ متر بالاتر از سطح دریا واقع شده‌است.
اورولیو (به انگلیسی: Oroleve) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان بیوت، کالیفرنیا واقع شده‌است. اورولیو ۱٬۰۱۷ متر بالاتر از سطح دریا واقع شده‌است.
اورویل جانکشن (به انگلیسی: Oroville Junction) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان بیوت، کالیفرنیا واقع شده‌است. اورویل جانکشن ۵۰ متر بالاتر از سطح دریا واقع شده‌است.
شیپ رنچ (به انگلیسی: Sheep Ranch) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان کالاوراس، کالیفرنیا واقع شده‌است. شیپ رنچ ۷۱۹ متر بالاتر از سطح دریا واقع شده‌است.
شرمن ایکرز (به انگلیسی: Sherman Acres) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان کالاوراس، کالیفرنیا واقع شده‌است. شرمن ایکرز ۲٬۱۳۵ متر بالاتر از سطح دریا واقع شده‌است.
شیپی (به انگلیسی: Shippee) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان بیوت، کالیفرنیا واقع شده‌است. شیپی ۴۰ متر بالاتر از سطح دریا واقع شده‌است.
اسکای‌های (به انگلیسی: Skyhigh) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان کالاوراس، کالیفرنیا واقع شده‌است. اسکای‌های ۲٬۱۴۶ متر بالاتر از سطح دریا واقع شده‌است.
اسنوشو اسپرینگز (به انگلیسی: Snowshoe Springs) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان کالاوراس، کالیفرنیا واقع شده‌است. اسنوشو اسپرینگز ۱٬۴۸۹ متر بالاتر از سطح دریا واقع شده‌است.
سورنسون (به انگلیسی: Sorenson) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان آلامدا، کالیفرنیا واقع شده‌است. سورنسون ۲۴ متر بالاتر از سطح دریا واقع شده‌است.
کامانچی شور جنوبی (به انگلیسی: South Camanche Shore) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان کالاوراس، کالیفرنیا واقع شده‌است. کامانچی شور جنوبی ۱۳۵ متر بالاتر از سطح دریا واقع شده‌است.
ساوت‌ساید (به انگلیسی: Southside) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در آرکانزاس واقع شده‌است. ساوت‌ساید ۲۵٫۴۴ کیلومتر مربع مساحت و ۱۰۲ نفر جمعیت دارد.
استیگمن (به انگلیسی: Stegeman) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان کولوزا، کالیفرنیا واقع شده‌است. استیگمن ۲۴ متر بالاتر از سطح دریا قرار دارد.
استرلینگ جانکشن (به انگلیسی: Stirling Junction) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان بیوت، کالیفرنیا واقع شده‌است. استرلینگ جانکشن ۶۲ متر بالاتر از سطح دریا قرار دارد.
سولفور اسپرینگز (به انگلیسی: Sulphur Springs) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان ون بیورن، آرکانزاس واقع شده‌است. سولفور اسپرینگز ۲۲۴٫۰۳ متر بالاتر از سطح دریا واقع شده‌است.
سولفور اسپرینگز (به انگلیسی: Sulphur Springs) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان یل، آرکانزاس واقع شده‌است. سولفور اسپرینگز ۱۳۸٫۹۹ متر بالاتر از سطح دریا واقع شده‌است.
سانی‌بروک (به انگلیسی: Sunnybrook) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان آمادور، کالیفرنیا واقع شده‌است. سانی‌بروک ۲۳۹ متر بالاتر از سطح دریا واقع شده‌است.
سانی‌اسلوپ (به انگلیسی: Sunnyslope) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان بیوت، کالیفرنیا واقع شده‌است. سانی‌اسلوپ ۱۶۷ متر بالاتر از سطح دریا واقع شده‌است.
سانست پوینت (به انگلیسی: Sunset Point) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان کالاوراس، کالیفرنیا واقع شده‌است. سانست پوینت ۱٬۰۴۲ متر بالاتر از سطح دریا واقع شده‌است.
ساتر هیل (به انگلیسی: Sutter Hill) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان آمادور، کالیفرنیا واقع شده‌است. ساتر هیل ۴۷۶ متر بالاتر از سطح دریا واقع شده‌است.
سایکامور (به انگلیسی: Sycamore) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان کولوزا، کالیفرنیا واقع شده‌است. سایکامور ۱۵ متر بالاتر از سطح دریا واقع شده‌است.
تاماراک (به انگلیسی: Tamarack) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان کالاوراس، کالیفرنیا واقع شده‌است. تاماراک ۲٬۱۰۷ متر بالاتر از سطح دریا واقع شده‌است.
تاماراک اسپرینگز (به انگلیسی: Tamarack Springs) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان کالاوراس، کالیفرنیا واقع شده‌است. تاماراک اسپرینگز ۲٬۱۴۸ متر بالاتر از سطح دریا واقع شده‌است.
تلگراف سیتی (به انگلیسی: Telegraph City) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان کالاوراس، کالیفرنیا واقع شده‌است. تلگراف سیتی ۱۹۹ متر بالاتر از سطح دریا واقع شده‌است.
تیمبر تریلز (به انگلیسی: Timber Trails) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان کالاوراس، کالیفرنیا واقع شده‌است. تیمبر تریلز ۱٬۱۰۲ متر بالاتر از سطح دریا واقع شده‌است.
تویانزا سابدیوژن (به انگلیسی: Toyanza Subdivision) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان کالاوراس، کالیفرنیا واقع شده‌است. تویانزا سابدیوژن ۳۴۱ متر بالاتر از سطح دریا قرار دارد.
تویون (به انگلیسی: Toyon) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان کالاوراس، کالیفرنیا واقع شده‌است. تویون ۳۰۱ متر بالاتر از سطح دریا واقع شده‌است.
ویستا رابلس (به انگلیسی: Vista Robles) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان بیوت، کالیفرنیا واقع شده‌است. ویستا رابلس ۴۳ متر بالاتر از سطح دریا واقع شده‌است.
والنات گروو (به انگلیسی: Walnut Grove) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان واشینگتن، آرکانزاس واقع شده‌است. والنات گروو ۳۵۴ متر بالاتر از سطح دریا واقع شده‌است.
وست بیوت (به انگلیسی: West Butte) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان کولوزا، کالیفرنیا واقع شده‌است. وست بیوت ۲۶ متر بالاتر از سطح دریا واقع شده‌است.
وایت راک (به انگلیسی: White Rock) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان واشینگتن، آرکانزاس واقع شده‌است. وایت راک ۳۸۱٫۰ متر بالاتر از سطح دریا واقع شده‌است.
ویلسی‌ویل (به انگلیسی: Wilseyville) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان کالاوراس، کالیفرنیا واقع شده‌است. ویلسی‌ویل ۸۴۴ متر بالاتر از سطح دریا واقع شده‌است.
وایاندات (به انگلیسی: Wyandotte) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان بیوت، کالیفرنیا واقع شده‌است. وایاندات ۲۰۴ متر بالاتر از سطح دریا واقع شده‌است.
وایالدوود (به انگلیسی: Wyldewood) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان کالاوراس، کالیفرنیا واقع شده‌است. وایالدوود ۷۰۴ متر بالاتر از سطح دریا واقع شده‌است.
میدوی (به انگلیسی: Midway) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان وایت، آرکانزاس واقع شده‌است. میدوی ۱۸۵٫۰۲ متر بالاتر از سطح دریا واقع شده‌است.
ماونت اولیو (به انگلیسی: Mount Olive) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان پوینست، آرکانزاس واقع شده‌است. ماونت اولیو ۶۶٫۱۴ متر بالاتر از سطح دریا واقع شده‌است.
فارول (به انگلیسی: Farwell) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان آلامدا، کالیفرنیا واقع شده‌است. فارول ۶۷٫۹۷ متر بالاتر از سطح دریا واقع شده‌است.
گراینو (به انگلیسی: Graino) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان کولوزا، کالیفرنیا واقع شده‌است. گراینو ۱۰ متر بالاتر از سطح دریا واقع شده‌است.
هارینگتون (به انگلیسی: Harrington) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان کولوزا، کالیفرنیا واقع شده‌است. هارینگتون ۴۰ متر بالاتر از سطح دریا واقع شده‌است.
هاتاویز مونتاین پاینز (به انگلیسی: Hathaways Mountain Pines) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان کالاوراس، کالیفرنیا واقع شده‌است. هاتاویز مونتاین پاینز ۱٬۰۵۱ متر بالاتر از سطح دریا واقع شده‌است.
هورلتون (به انگلیسی: Hurleton) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان بیوت، کالیفرنیا واقع شده‌است. هورلتون ۴۸۷ متر بالاتر از سطح دریا قرار دارد.
ایندیان هیلز (به انگلیسی: Indian Hills) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان کالاوراس، کالیفرنیا واقع شده‌است. ایندیان هیلز ۹۶۱ متر بالاتر از سطح دریا قرار دارد.
تخریب عصبی با تجمع آهن در مغز () یا به اختصار «NBIA» گروه ناهمگونی از اختلالات عصبی است که پژوهش‌ها دربارهٔ آنان ادامه دارد و در آنها، آهن در عقده‌های قاعده‌ای مغز رسوب می‌کند و موجب دیستونی پیشرونده و/یا علائم شبه پارکینسون و/یا سفتی عضلانی (اسپاسیته) و/یا تحلیل‌رفتن عصب چشم‌ها و/یا اضمحلال شبکیه و/یا اختلالات روان‌پزشکی مختلف و/یا اختلالات گوناگون عصبی می‌شود.Definition & Details http://nbiacure.org برخی از این بیماری‌ها با چندین ژن در مسیر متابولیسم چربی مرتبط هستند. NBIA یک بیماری مجزا نیست، بلکه گروهی از بیماری‌های عصبی است که آهن در مغز رسوب کرده و اجسام کروی‌شکل آکسونی در دستگاه عصبی مرکزی به وجود می‌آید. تجمع آهن در هر نقطه‌ای از مغز ممکن است رخ دهد اما در نواحی توده سیاه، جسم مخطط، گوی رنگ‌پریده و هستهٔ دندانه‌دار مخچه شایع‌تر است. علائم این بیماری‌ها شامل ترکیبی از انواع اختلالات حرکتی، مشکلات روانی، تشنج، اختلالات بینایی و افت عملکرد ذهنی است. علت بروز این بیماری‌ها، جهش‌های متعدد در ژن‌هایی است که مستقیماً در متابولیسم آهن شرکت دارند به همراه اختلال در متابولیسم فسفولیپیدها، سِـرامیدها و برخی اختلالات لیزوزومی و همچنین جهش در ژن‌هایی است که هنوز عملکرد آن‌ها مشخص نشده‌است. بیماری در هر سنی می‌تواند آغاز شود: از کودکی تا میانسالی.
علاوه بر موارد فوق، چندین گونهٔ نادر و ناشناخته از NBIA شناسایی شده‌است که جزئیات آن به‌خوبی معلوم نیست. مشخصهٔ تمامی این‌ها نیز تجمع آهن در مغز و تخریب آن، به‌ویژه در ناحیهٔ عقده‌های قاعده‌ای است.Hogarth P. et al. : New NBIA subtype: genetic, clinical, pathologic, and radiographic features of MPAN. In: Neurology. 2013 Jan 15;80(3):268-75. doi: 10.1212/WNL.0b013e31827e07be. Epub 2012 Dec 26.
بر حسب اینکه فرد چه علامتی دارد،Brüggemann N. et al. : Recessively inherited parkinsonism: effect of ATP13A2 mutations on the clinical and neuroimaging phenotype. Arch Neurol. 2010 Nov;67(11):1357-63. doi: 10.1001/archneurol.2010.281. اسکن حامل دوپامین مغز (DaTSCAN)، سونوگرافی فراصوتی داپلر جمجمه، برش‌نگاری با گسیل پوزیترون و گاهی ام‌آرآی از جمله روش‌هایی است که با آن‌ها می‌توان مکان رسوب آهن و انواع مختلف NBIA را تشخیص داد. در این مواقع، بیماری را به دو گروه تقسیم‌بندی می‌کنند: (۱) زودهنگام، پیشرفت سریع (۲) دیررس، پیشرفت آهسته. گروه اول، تظاهر کلاسیک بیماری است و گروه دوم تظاهر نامتداول آن است. تظاهر بیماری همچنین به سن فرد بستگی دارد. مثلاً چه میزان آهن رسوب یافته و توانایی‌های شناختی-ذهنی فرد چقدر است.
درمان مؤثری برای این بیماری‌ها هنوز پیدا نشده‌است. در بسیاری از بیماران، تحریک الکتریکی گوی رنگ‌پریده، شدت دیستونی را کاهش می‌دهد، اما جلوی تخریب عصبی را نمی‌گیرد. مابین تظاهرات انواع مختلف این بیماری و همچنین این بیماری با سایر بیماری‌های مغز و اعصاب، هم‌پوشانی و شباهت‌هایی وجود دارد و همین موضوع موجب تشخیص اشتباه می‌شود. درمان‌های موجود علائم را کاهش یا بهبود می‌بخشد، اما جلوی رسوب آهن در مغز را نمی‌گیرند. داروهای عصبی-روانی همچون داروهای دوپامینرژیک، آنتی‌کولینرژیک و تترابنازین جهت درمان علائم استفاده می‌شوند، اما تأثیری بر سرانجام و عاقب بیماری ندارند.
کیستر (به انگلیسی: Kister) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان بیوت، کالیفرنیا واقع شده‌است. کیستر ۱٬۴۷۱ متر بالاتر از سطح دریا واقع شده‌است.
کوماندورسکی ویلیج (به انگلیسی: Komandorski Village) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان آلامدا، کالیفرنیا واقع شده‌است. کوماندورسکی ویلیج ۱۱۳ متر بالاتر از سطح دریا واقع شده‌است.
لاست سیتی (به انگلیسی: Lost City) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان کالاوراس، کالیفرنیا واقع شده‌است. لاست سیتی ۳۲۱ متر بالاتر از سطح دریا قرار دارد.
لین پارک ایکرز (به انگلیسی: Lynn Park Acres) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان کالاوراس، کالیفرنیا قرار داد. لین پارک ایکرز ۸۳۰ متر بالاتر از سطح دریا واقع شده‌است.
نیمسیو (به انگلیسی: Nimshew) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان بیوت، کالیفرنیا واقع شده‌است. نیمسیو ۷۶۴ متر بالاتر از سطح دریا قرار دارد.
پاولتون (به انگلیسی: Powellton) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان بیوت، کالیفرنیا قرار دارد. پاولتون ۱٬۱۰۴ متر بالاتر از سطح دریا واقع شده‌است.
سایتس (به انگلیسی: Sites) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان کولوزا، کالیفرنیا قرار دارد.
وایت پاینز (به انگلیسی: White Pines) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان کالاوراس، کالیفرنیا واقع شده‌است. وایت پاینز ۱٬۱۹۱ متر بالاتر از سطح دریا قرار دارد.
مالدن (به انگلیسی: Malden) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان پرتر، ایندیانا واقع شده‌است. مالدن ۲۱۶ متر بالاتر از سطح دریا قرار دارد.
پوگو (به انگلیسی: Pogo) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در آلاباما واقع شده‌است. پوگو ۱۶۰٫۹۴ متر بالاتر از سطح دریا واقع شده‌است.
زیگموند هنریک برلینک () (۲۷ آوریل ۱۸۹۶ - ۱۱ ژوئیه ۱۹۸۰) یک ژنرال و سیاستمدار لهستانی است. او در اوایل قرن بیستم برای استقلال لهستان مبارزه کرد. در طی جنگ جهانی دوم ، او به طور غیرمستقیم به دلیل فرار از ارتش آندرس به اعدام محکوم شد. اما حکومت در تبعید لهستان این حکم را لغو کرد. بعدها، برلینک تبدیل به فرمانده ارتش اول لهستان که بخشی از ارتش لهستانی اتحاد جماهیر شوروی بود گشت و نقش مهمی را در دولت لهستان پس از جنگ بازی کرد.
کارنیتین او-استیل‌ترانسفراز () که با نام اختصاری CRAT شناخته می‌شود، یک آنزیم است که در انسان توسط ژن «"CRAT"» کدگذاری می‌شود.
این آنزیم واکنش شیمیایی زیر را کاتالیز می‌کند که طی آن ریشه استیل، موجب جایگزینی اتم هیدروژن در ریشهٔ هیدروکسیل اصلی، بجای کارنیتین می‌شود.
جهش در ژن CRAT، فرد را در معرض ابتلا به مشکلات شدید مغزی و قلبی قرار می‌دهد.
از طرفی کاهش فعالیت این آنزیم در بیماران مبتلا به آلزایمر دیده شده‌است.
این آنزیم و خانوادهٔ آنزیمی مشابه‌اش، بطور بالقوه ممکن است از اهداف درمانی مهم در دیابت نوع ۲ و سایر بیماری‌ها باشند.
الیزابت والدهایم (زاده ۱۳ آوریل ۱۹۲۲ – درگذشته ۲۸ فوریه ۲۰۱۷) بانوی اول سابق اتریش بود. او همسر کورت والدهایم رئیس‌جمهور اتریش بین سال‌های ۱۹۸۶ تا ۱۹۹۲ (میلادی) بود.
الیزابت والدهایم در ۲۸ فوریه ۲۰۱۷، در سن ۹۴ سالگی در وین درگذشت.https://wien.orf.at/news/stories/2828200/
نیکولاس فون ورمان (۲۴ دسامبر ۱۸۹۵ - ۲۶ اکتبر ۱۹۵۹) یک ژنرال با پیشینه پروسی بود که در ارتش آلمان نازی خدمت میکرد.
ژنرال فون ورمان بیشتر طول جنگ جهانی دوم را در عملیات‌های جبهه شرق سپری کرد و در سال ۱۹۴۴ در دوره کوتاهی فرمانده ارتش نهم را فرماندهی کرد. در همین مدت اندک او در سرکوب قیام ورشو دخالت داشت، اما این سرکوب شامل نابودی پایتخت لهستان و قتل عام تمام ساکنان آن به همراهی نیروهای اس‌اس بود. پس از آن در روز ۴ مه ۱۹۴۵ و در بحبوحه روزهای پایانی جنگ جهانی دوم، فون ورمان به عنوان فرمانده دژ آلپ که در حقیقت وجود خارجی نداشت منصوب شد.
فون ورمان از دریافت کنندگان صلیب شوالیه آهنین است و نهایتاً در ۲۶ اکتبر ۱۹۵۶ در برشتس گادن فوت کرد.
در علم کامپیوتر، بهینه‌سازی برنامه یا بهینه‌سازی نرم‌افزار، روند اصلاح یک سیستم نرم‌افزاری است تا بعضی از جنبه‌های آن را کارآمدتر کند یا از منابع کمتر استفاده کند.Robert Sedgewick، "الگوریتم"، 1984، ص. 84 به‌طور کلی، یک برنامه کامپیوتری ممکن است بهینه شود تا سریعتر اجرا شود یا بتوان آن را با ذخیره حافظه کمتر یا با استفاده از منابع دیگر یا حتی قدرت کمتری خلق کرد
اگر چه کلمه "بهینه سازی" ریشه در "بهینه"دارد، فرایند بهینه‌سازی برای تولید یک سیستم به‌طور مطلوب نادر است. سیستم بهینه تنها در یک برنامه یا برای یک مخاطب مطلوب است. ممکن است مقدار زمانی که یک برنامه برای انجام برخی کارها طی می‌کند یا حافظه بیشتری که مصرف می‌کند را کاهش دهد. در یک برنامه کاربردی که فضای حافظه در اصل کم است، ممکن است به صورت عمدی یک الگوریتم کندتر را برای استفاده از حافظه کمتر انتخاب شود. اغلب طراحی "یک اندازه که به همه اختصاص داده می‌شود " وجود دارد که در همه موارد به خوبی کار می‌کند، بنابراین مهندسان به منظور بهینه‌سازی ویژگی‌هایی که بیشترین توجه را به خود جلب می‌کنند، در کنار هم قرار می‌گیرند.. علاوه بر این تلاش لازم برای ساختن یک قطعه نرم‌افزاری به‌طور کامل بهینه است - حتی درصورت ناتوانی برای هر گونه پیشرفت در ان - تقریباً همیشه بیش از معقول بودن برای مزایایی است که شامل می‌شود؛ بنابراین فرایند بهینه‌سازی ممکن است قبل از رسیدن به یک راه حل کاملاً مطلوب متوقف شود. خوشبختانه، اغلب موارد این است که بیشترین پیشرفت در اوایل روند انجام می‌شود.
بهینه‌سازی می‌تواند در سطوح مختلف رخ دهد. به‌طور معمول، سطوح بالاتر تأثیر بیشتری دارند و بعداً در یک پروژه تغییر می‌کنند و نیاز به تغییرات قابل توجهی دارند و اگر مجبور باشند تغییرات لازم را انجام دهند بازنویسی کامل خواهند شد؛ بنابراین بهینه‌سازی می‌تواند به‌طور معمول از طریق پالایش از بالا به پایین ادامه یابد، با دستاوردهای بزرگ‌تر اولیه و با کار کمتر به دست می‌آید، و پس از آن دستاوردهای کوچکتر و نیاز به کار بیشتر. با این حال، در برخی موارد عملکرد کلی بستگی به عملکرد بخش‌های بسیار پایین برنامه دارد و تغییرات کوچک در مراحل اولیه در مورد جزئیات پایین سطح می‌تواند تأثیرات ناخوشایندی داشته باشد. به‌طور معمول به بهره‌وری در یک پروژه توجه می‌شود - هرچند که این تغییرات قابل توجه است - اما بهینه‌سازی عمده اغلب به عنوان یک پالایش در نظر گرفته می‌شود که دیر یا زود انجام شود. در پروژه‌های در حال اجرا دیگر، به‌طور معمول چرخه بهینه‌سازی وجود دارد، در حالیکه بهبود یک منطقه محدودیت‌های دیگری را نشان می‌دهد و معمولاً زمانی کاهش می‌یابد که عملکرد قابل قبول باشد یا سودو هزینه بیش از حد کوچک باشد.
عملکرد بخشی از مشخصات برنامه است - یک برنامه که آهسته باشدبه‌طور غیرقابل اجتناب برای هدف مناسب نیست: یک بازی ویدیویی با ۶۰ هرتز (فریم در ثانیه) قابل قبول است، اما ۶ فریم در ثانیه غیرقابل قبول و خسته‌کننده است - عملکرد از ابتدا مورد بررسی قرار می‌گیرد تا اطمینان حاصل شود که سیستم قادر به ارائه عملکرد کافی می‌باشد و سیستم نهایی (با بهینه‌سازی) به عملکرد قابل قبول دست می‌یابد. این موضوع گاهی اوقات اینطور برداشت می‌شود که بهینه‌سازی همیشه می‌تواند دیر تر انجام شود، و در نتیجه سیستم‌های نمونه اولیه که - اغلب به میزان زیاد یا بیشتر هستند - و حتی سیستم‌هایی که در نهایت خرابی هستند، زیرا از لحاظ معماری نمی‌توانند به عملکردی که هدف خود قرار داده‌اند دست یابند. مانند اینتل ۴۳2 (1981)که سال‌ها همکاری را برای دستیابی به یک عملکرد قابل قبول مانند آن که (Java (1995 بتواند عملکرد قابل قبولی را با(HotSpot (1999 داشته باشد را انجام دادند. درجه ای که عملکرد بین نمونه اولیه و سیستم تولیدی را نشان می‌دهد تغییر می‌کند و چگونگی ارتقای آن بهینه‌سازی می‌شود، که می‌تواند منبع مهمی از عدم اطمینان و خطر نمونه باشد.
در بالاترین سطح طراحی ممکن است بهینه‌سازی انجام شود تا بهترین استفاده را از منابع موجود، اهداف، محدودیت‌های مورد انتظار داشته باشیم. طراحی معماری یک سیستم عمدتاً بر عملکرد آن تأثیر می‌گذارد. به عنوان مثال، یک سیستم که وابسته به زمان تأخیر شبکه‌ها است (که در آن زمان تأخیر شبکه محدودیت اصلی عملکرد کلی است) بهینه‌سازی می‌شود تا زمان ان را به حداقل برساند، در حالت ایدئال یک درخواست واحد (یا هیچ درخواست، مانند یک پروتکل فشار) به جای چند دور دفعات صورت می‌گیرد در اصل نشان می‌دهد که انتخاب‌ها به اهداف طراحی بستگی دارد: هنگام طراحی یک کامپایلر، اگر تدوین سریع اولویت کلیدی باشد، طراحی یک کامپایلر یک گذر سریعتر از یک کامپایلر چند گذر (با فرض انجام کار مشابه) انجام می‌شود، اما اگر سرعت خروجی کد هدف باشد، یک کامپایلر چندتایی بهتر به هدف می‌رسد، حتی اگر طول بکشد. انتخاب پلاتفرم و زبان برنامه‌نویسی در این سطح رخ می‌دهد و تغییر آن‌ها اغلب نیازمند بازنویسی کامل است، هرچند یک سیستم ماژولار ممکن است اجازه بازنویسی تنها برخی از مؤلفه‌ها را بدهد - مثلاً یک برنامه پایتون ممکن است بخش‌های عملکردی حیاتی را در C بازنویسی کند. سیستم، انتخاب معماری (client-server، peer-to-peer و غیره) در سطح طراحی رخ می‌دهد و ممکن است دشوار باشد، به خصوص اگر تمام اجزای سازنده را نمی‌توان جایگزین کرد (به عنوان مثال مشتریان قدیمی).
با در نظر گرفتن یک طرح کلی، انتخاب خوبی از الگوریتم‌های کارآمد و ساختار داده‌ها و اجرای کارآمد این الگوریتم‌ها و ساختارهای داده‌ها، در ادامه آمده‌است. پس از طراحی، انتخاب الگوریتم‌ها و ساختارهای داده بر کارایی بیش از هر جنبه دیگر برنامه تأثیر می‌گذارد. به‌طور کلی، ساختار داده‌ها بیشتر از الگوریتم‌ها تغییر می‌کند، زیرا فرضیه ساختار داده‌ها و فرضیه‌های عملکرد آن در طول برنامه استفاده می‌شود، هرچند این می‌تواند با استفاده از انواع داده‌های انتزاعی در تعاریف تابع به حداقل برسد و تعاریف ساختار داده‌ها محدود شود به چند مکان
برای الگوریتم‌ها این به‌طور عمده شامل اطمینان از اینکه الگوریتم‌ها ثابت (O (1، لگاریتمی (O(log "n"، خطی (O ("n" یا در برخی موارد (log-line O(n log nدر ورودی (هر دو در فضا و زمان). الگوریتم‌هایی با پیچیدگی درجه دوم(O ("n" 2 در مقیاس شکست می‌یابند، و حتی الگوریتم‌های خطی باعث می‌شود که مشکلات به صورت مکرر فراخوانی شوند و به‌طور معمول با احتمالات ثابت یا لگاریتمی جایگزین شوند.
فراتر از نظم نسبیت رشد، عوامل پایدار اهمیت دارد: الگوریتم کند تراز الگوریتم سریعتر یا کوچکتر (به عنوان ساده‌تر)، فقط زمانی هر دو با ورودی کوچک مواجه می‌شوند، که در واقعیت اتفاق بیفتد. اغلب الگوریتم ترکیبی بهترین عملکرد را به وجود می‌آورد، به این دلیل که این تغییرات با اندازه تغییر می‌کند.
یک روش کلی برای بهبود عملکرد، اجتناب از کار است. یک مثال خوب استفاده از یک مسیر سریع برای موارد معمول است، بهبود عملکرد با اجتناب از کار غیر ضروری. به عنوان مثال، با استفاده از یک الگوریتم طرح بندی متن ساده برای متن لاتین، تنها تغییر در الگوریتم طرح پیچیده برای اسکریپت‌های پیچیده مانند Devanagari. یکی دیگر از روش‌های مهم ذخیره‌سازی، به ویژه memoization، که از محاسبات بیش از حد جلوگیری می‌کند. با توجه به اهمیت ذخیره‌سازی، اغلب سطوح ذخیره‌سازی در یک سیستم وجود دارد که می‌تواند مشکلاتی را از استفاده از حافظه ایجاد کند و مسائل مربوط به صحت از حافظه‌های غیرمجاز.
فراتر از الگوریتم‌ها و اجرای آن‌ها در انتزاعی و ماشین آلات بتن و کد منبع سطح انتخاب می‌تواند تفاوت قابل توجهی است. برای مثال در اوایل C کامپایلر codice_1 شد و آهسته‌تر از codice_2 به صورت بی قید و شرط حلقه زیرا codice_3 ارزیابی ۱ و سپس یک پرش شرطی که تست شده اگر درست شد در حالی که codice_4 تا به حال بی قید و شرط پرش. برخی از بهینه‌سازی (مثل این یکی) امروزه می‌توان با بهینه‌سازی کامپایلر. این بستگی به منبع زبان دستگاه مورد نظر زبان و کامپایلر و می‌تواند دشوار به درک یا پیش‌بینی و تغییرات در طول زمان است و این کلید جایی که درک درستی از کامپایلر و کد دستگاه می‌تواند عملکرد را بهبود بخشد. حلقه-ناوردا کد حرکت و بازگشت ارزش بهینه‌سازی نمونه‌هایی از بهینه‌سازی است که کاهش نیاز به کمکی متغیر و حتی می‌تواند منجر به اجرای سریع تر و با اجتناب از دور-در مورد بهینه‌سازی.
بین منبع و سطح کامپایل، دستورالعمل‌ها و فلگ‌های ساخت را می‌توان برای تنظیم گزینه‌های عملکرد در کد منبع و کامپایلر به ترتیب استفاده کرد، از جمله استفاده از پیش پردازنده تعریف می‌شود که برای مثال برای غیرفعال کردن ویژگی‌های نرم‌افزار غیر ضروری، بهینه‌سازی برای مدل‌های خاص پردازنده یا قابلیت‌های سخت‌افزاری، یا پیش‌بینی شاخه، سیستم‌های توزیع نرم‌افزار مبتنی بر منبع مانند پورت‌های BSD و انتقال جنتو‌ها و این صورتی ازشکل بهینه‌سازی است.
استفاده از یک کامپایلر بهینه‌سازی شده مستلزم اطمینان از اینکه برنامه اجرایی حداقل به همان اندازه که کامپایلر می‌تواند پیش‌بینی کند بهینه‌سازی شده باشد.
در پایین‌ترین سطح، نوشتن کد با استفاده از یک زبان مونتاژ، طراحی شده برای یک پلتفرم سخت‌افزاری خاص می‌تواند کارآمدترین و کمترین کد را تولید کند، در صورتی که برنامه‌نویس از رکورد کامل دستورالعملهای ماشین استفاده کند. به همین دلیل، بسیاری از سیستم عامل‌های مورد استفاده در سیستم‌های جاسازی شده به‌طور سنتی در کد اسمبلر نوشته شده‌اند. برنامه‌ها (به غیر از برنامه‌های بسیار کوچک) به ندرت از زمان شروع و پایان در مونتاژ به علت زمان و هزینه درگیر می‌شوند. اکثر آن‌ها از یک زبان سطح بالا به مونتاژ و دست بهینه شده از آنجا جمع شده‌اند. هنگامی که بازده قطعات مهمتر از اندازه هستند، ممکن است در یک زبان سطح بالا نوشته شوند.
با کامپایلرهای پیشرفته تر بهینه‌سازیو پیچیدگی CPUهای اخیر، بیشتر است که کد کارآمدتری را از آنچه که کامپایلر تولید می‌کند، بنویسید و پروژه‌های کوچک به این روش بهینه‌سازی نهایی نیاز دارند.
امروزه کد نوشته می‌شود تا به عنوان ماشین‌های بسیاری بتواند اجرا شود. به عنوان یک نتیجه، برنامه نویسان و کامپایلرها همیشه از دستورالعمل‌های کارآمدتر ارائه شده توسط پردازنده‌های جدیدتر یا پیش فرض مدل‌های قدیمی تر استفاده نمی‌کنند. علاوه بر این، کدهای مونتاژ شده برای یک پردازنده خاص بدون استفاده از چنین دستورالعمل‌های تنظیم شده‌است که ممکن است در پردازنده دیگری غیرقطعی باشند، و انتظار تنظیم متفاوت از کد را دارند.
به‌طور معمول امروز، به جای اینکه در زبان اسمبلی بنویسیم، برنامه نویسان از یک disassembler برای تجزیه و تحلیل خروجی یک کامپایلر استفاده می‌کنند و کد منبع بالا را تغییر می‌دهند تا بتوان آن را به‌طور مؤثر تر کامپایل کرد یا متوجه شد که چرا آن ناکارآمد است.
کامپایلرها فقط در زمان اجرا می‌توانند کد ماشین را بر اساس داده‌های زمان اجرا، تولید کنند. این تکنیک به اولین موتورهای بیان منظم می‌رسد و با Java HotSpot و V8 برای جاوا اسکریپت گسترش پبدا کرده‌است. در برخی موارد بهینه‌سازی سازگاری ممکن است قادر به انجام بهینه‌سازی زمان اجرا بیش از توانایی کامپایلرهای استاتیک با تنظیم پارامترهای پویا با توجه به ورودی‌های واقعی یا سایر عوامل باشد.
بهینه‌سازی پروفایل هدایت شده یک روش بهینه‌سازی تلفیقی پیش از زمان (AOT) بر اساس پروفایل‌های زمان اجرا است و شبیه به یک متد استاتیکی «مورد متوسط» که از تکنیک پویا بهینه‌سازی سازگاری است.
کد خودمحور می‌تواند در پاسخ به شرایط زمان اجرا به منظور بهینه‌سازی کد تغییر کند. این در برنامه‌های زبان مونتاژ رایج بود.
برخی از طرح‌های CPU می‌توانند برخی از بهینه‌سازی‌ها را در زمان اجرا انجام دهند. بعضی از نمونه‌ها عبارتند , , و . کامپایلرها می‌توانند به این برنامه کمک کنند که از ویژگی‌های این CPU بهره‌مند شوند، مثلاً از طریق برنامه‌ریزی دستورالعمل.
بهینه‌سازی کد را می‌توان همچنین به‌طور گسترده به عنوان طبقه‌بندی پلت فرم‌های وابسته و تکنیک‌های مستقل از پلتفرم دانست. در حالی که آن‌هایی که در اکثر یا تمام سیستم عامل‌ها مؤثر هستند، تکنیک‌های وابسته به پلت فرم از ویژگی‌های خاص یک پلت فرم استفاده می‌کنند یا به پارامترهای بسته به پلت فرم تک یا حتی بر روی پردازنده تک تک تکیه می‌کنند؛ بنابراین ممکن است نوشتن یا تولید نسخه‌های مختلف از همان کد برای پردازنده‌های مختلف مورد نیاز باشد. به عنوان مثال، در مورد بهینه‌سازی سطح کامپایل، تکنیک‌های مستقل از پلت فرم، تکنیک‌های عمومی هستند (مانند حلقه، کاهش تماس‌های عملکردی، رویه‌های کارآمد حافظه، کاهش شرایط و غیره)، که اکثر معماری‌های CPU را در یک مسیر مشابه را شامل می‌شود یک نمونه عالی از بهینه‌سازی مستقل از پلت فرم با حلقه درونی نشان داده شده‌است، جایی که یک حلقه با یک حلقه درونی مشاهده شد، محاسبات بیشتری را در هر واحد زمان انجام می‌دهد تا یک حلقه بدون آن یا یک حلقه داخلی در حالی که حلقه است به حساب آورد. به‌طور کلی، این‌ها به منظور کاهش کل مسیر آموزش مورد نیاز برای تکمیل برنامه یا کاهش کل استفاده از حافظه در طول فرایند خدمت می‌کنند. از سوی دیگر، تکنیک‌های وابسته به پلت فرم شامل برنامه‌ریزی دستورالعمل، هماهنگی در سطح دروس، سطح هماهنگی داده‌ها، تکنیک‌های بهینه‌سازی حافظه پنهان (یعنی پارامترهای متفاوت در سیستم عامل‌های مختلف) و برنامه‌ریزی دستورالعمل مطلوب حتی در پردازنده‌های مختلف همان معماری ممکن است.
وظایف محاسباتی را می‌توان با روش‌های مختلف با کارایی متفاوت انجام داد. یک نسخه کارآمد با قابلیت معادل به عنوان یک کاهش قدرت شناخته شده‌است. برای مثال، کد قطعه زیر C را در نظر بگیرید که قصد دارد مجموع اعداد صحیح را از ۱ به N بدست آورد:
for (i = 1; i <= N; ++i) {
printf("sum: %d\n", sum);
int sum = N * (1 + N) / 2;
بهینه‌سازی همیشه یک فرایند واضح یا بصری نیست. در مثال بالا، نسخه بهینه شده ممکن است در مقایسه با نسخه اصلی کندتر از نسخه اصلی باشد اگر N به اندازه کافی کوچک باشد و سخت‌افزار خاص در انجام عملیات علاوه بر اضافه کردن و حلقه بیش از ضرب و تقسیم، بسیار سریعتر اتفاق می‌افتد.
در برخی موارد، با این حال، بهینه‌سازی مبتنی بر استفاده از الگوریتم‌های پیچیده‌تر یا استفاده از «موارد خاص» و «حقه‌های ویژه» و انجام پیچیده تجارت است. برنامه به‌طور کامل بهینه شده ممکن است دشوار باشد و از این رو ممکن است خطاهای بیشتری را نسبت به نسخه‌های غیرمتعارف داشته باشد. بعلاوه، حذف برخی از مشکلات واضح، برخی از بهینه‌سازی‌های سطح کد باعث کاهش قابلیت نگهداری می‌شود.
بهینه‌سازی به‌طور کلی بر بهبود تنها یک یا دو جنبه از عملکرد تمرکز می‌کند: زمان اجرا، استفاده از حافظه، فضای دیسک، پهنای باند، مصرف برق یا برخی از منابع دیگر. این معمولاً نیاز به یک trade-offدارد؛ که در آن یک عامل به هزینه دیگران بهینه‌سازی شده‌است. به عنوان مثال، افزایش حجم حافظه پنهان باعث بهبود عملکرد در زمان اجرا می‌شود، اما مصرف حافظه نیز افزایش می‌یابد. سایر موارد رایج شامل وضوح و مختصر کد است.
مواردی وجود دارد که برنامه‌نویس بهینه سا باید تصمیم بگیرد که نرم‌افزار را برای برخی عملیات بهتر کند، اما هزینه عملیات دیگر کمتر کارآمد است. این ترکیبات ممکن است گاهی غیر فنی باشد مانند زمانی که یک رقیب نتیجه یک معیار را منتشر کرده‌است که باید به منظور بهبود موفقیت تجاری مورد ضرب و شتم قرار گیرد، اما احتمالاً با استفاده از نرمال بودن نرم‌افزار کمتر کارآمد می‌شود. چنین تغییراتی گاهی اوقات به شوخی به عنوان "pessimizations" اشاره شده‌است.
بهینه‌سازی ممکن است شامل یافتن یک تنگنا در یک سیستم باشد - یک جزء که عامل محدودکننده در عملکرد است. از لحاظ کد، این اغلب یک نقطه داغ است - قسمت بحرانی کد که مصرف‌کننده اولیه منابع مورد نیاز است - هرچند که این می‌تواند عامل دیگری مانند زمان تأخیر I / O یا پهنای باند شبکه باشد.
در علم کامپیوتر، مصرف منابع اغلب به نوعی توزیع قانون قدرت پیوسته‌است و اصل پارتو را می‌توان به بهینه‌سازی منابع با توجه به اینکه ۸۰٪ از منابع معمولاً با استفاده از ۲۰٪ از عملیات مورد استفاده قرار می‌گیرد. در مهندسی نرم‌افزار اغلب یک تقریب بهتر است که ۹۰٪ زمان اجرای برنامه کامپیوتری صرف ۱۰٪ از کد انجام می‌شود (قانون ۹۰/۱۰ در این زمینه شناخته می‌شود).
الگوریتم پیچیده‌تر و ساختار داده‌ها با بسیاری از اقلام خوب عمل می‌کند، در حالی که الگوریتم‌های ساده برای مقادیر کوچک داده‌ها مناسب تر هستند - زمان راه اندازی، زمان شروع و عوامل ثابت الگوریتم پیچیده‌تر می‌تواند مزیت را بیش از حد و در نتیجه الگوریتم ترکیبی یا سازگار الگوریتم ممکن است سریعتر از هر الگوریتم تک باشد. یک پروفیل عملکرد می‌تواند مورد استفاده قرار گیرد تا محدودیت تصمیم‌های مربوط به عملکرد که مطابق با شرایط است.
در برخی موارد، اضافه کردن حافظه بیشتر می‌تواند کمک کند که برنامه را سریعتر اجرا کند. به عنوان مثال، یک برنامه فیلتر معمولاً هر خط را مطالعه می‌کند و فوراً آن خط را خروجی می‌کند. این تنها با استفاده از حافظه کافی برای یک خط استفاده می‌کند، اما عملکرد به‌طور معمول ضعیف است، به دلیل تأخیر هر خواندن دیسک. با خواندن کل فایل و سپس نوشتن نتیجه فیلتر شده، می‌توان عملکرد را بسیار بهبود داد، هرچند که از حافظه بسیار بیشتری استفاده می‌کند. ذخیره‌سازی نتایج مشابه نیز مؤثر است، هرچند که نیاز به استفاده از حافظه بزرگتر نیز دارد.
بهینه‌سازی می‌تواند خوانایی را کاهش دهد و کد را اضافه کند که فقط برای بهبود عملکرد استفاده می‌شود. این ممکن است برنامه‌ها یا سیستم‌ها را پیچیده‌تر کند و آن‌ها را برای حفظ و اشکال زدایی سخت‌تر کند. در نتیجه، بهینه‌سازی یا تنظیم عملکرد اغلب در پایان مرحله توسعه انجام می‌شود.
در هنگام تصمیم‌گیری در مورد اینکه آیا برای بهینه‌سازی بخش خاصی از برنامه، قانون قانون آمدال همیشه باید مورد توجه قرار گیرد: تأثیر بر برنامه کلی بسیار بستگی دارد به اینکه چقدر زمان واقعی در بخش خاصی صرف می‌شود، که همیشه از نگاه کردن به کد مشخص نیست بدون تجزیه و تحلیل عملکرد
یک روش بهتر این است که ابتدا کد را از طرح طراحی و سپس کد / کد نمایشی / معیار را ببینید تا ببینیم کدام قسمت باید بهینه شود. طراحی ساده و ظریف اغلب در این مرحله آسان‌تر می‌شود و پروفایل می‌تواند مشکلات عملکرد غیرمنتظره ای را نشان دهد که با بهینه‌سازی زود هنگام مواجه نخواهد شد.
در عمل، اغلب لازم است که در هنگام طراحی نرم‌افزار ابتدا اهداف عملکرد را ذکر کنید، اما برنامه‌نویس اهداف طراحی و بهینه‌سازی را متعادل می‌کند.
کامپایلرهای مدرن و سیستم عامل بسیار کارآمد هستند، زیرا عملکرد در نظر گرفته شده اغلب با شکست مواجه می‌شود. به عنوان مثال، داده‌های ذخیره شده در سطح برنامه که مجدداً در سطح سیستم عامل ذخیره می‌شوند، در اجرای بهبود نمی‌یابند. با این حال، هنگامی که برنامه‌نویس بهینه‌سازی‌های شکست خورده را از کد تولید حذف می‌کند، یک مورد نادر است. درست است پیشرفت‌های سخت‌افزاری اغلب از هیچگونه پیشرفت بالقوه اجتناب ناپذیر است، با این وجود کد پوششی در آینده به مدت طولانی پس از پایان دادن به هدف آن، ادامه خواهد یافت.
بهینه‌سازی در طول توسعه کد با استفاده از ماکرو در فرم‌های مختلف در زبان‌های مختلف صورت می‌گیرد.
در بعضی از زبان‌های رویه ای، مانند C و C ++، ماکروها با استفاده از جایگزینی نشانه اجرا می‌شوند. امروزه، توابع درون خطی می‌تواند به عنوان یک جایگزین امن در بسیاری موارد استفاده شود. در هر دو حالت، بدن تابع مجهز می‌تواند به وسیله کامپایلر بهینه‌سازی کامپایل زمان بیشتری را انجام دهد، از جمله تأخیر ثابت، که ممکن است برخی از محاسبات را برای زمان کامپایل حرکت کند.
در بسیاری از زبان‌های برنامه‌نویسی کاربردی، ماکروها با استفاده از پارسا زمان جایگزینی درختان تجزیه‌کننده / درخت‌های انتزاعی نحو اجرا می‌شوند که ادعا می‌کند آن‌ها را برای استفاده ایمن تر می‌کند. از آنجایی که در بسیاری از موارد از تفسیر استفاده می‌شود، این یکی از راه‌های اطمینان از این است که چنین محاسباتی تنها در زمان تجزیه انجام می‌شود و گاهی اوقات تنها راه است.
Lisp این سبک از ماکرو را ایجاد کرد و چنین ماکروهای اغلب به نام "ماکرو مانند Lisp" نامیده می‌شود. یک اثر مشابه را می‌توان با استفاده از metaprogramming قالب در C ++ بدست آورد.
در هر دو مورد، کار به زمان کامپایل منتقل شده‌است. تفاوت بین C ماکروها در یک طرف، و Lisp مانند ماکروها و C ++ برنامه‌نویسی خودآرا در طرف دیگر، آن است که ابزارهای دوم اجازه می‌دهد انجام محاسبات دلخواه در زمان کامپایل / تجزیه زمان، در حالی که گسترش C ماکروها هیچ انجام نمی‌محاسبات، و بر توانایی بهینه‌ساز برای انجام آن متکی است. علاوه بر این، ماکرو C مستقیماً از بازگشت یا تکرار پشتیبانی نمی‌کند، بنابراین تورینگ کامل نیست.
با این حال، همان‌طور که با هر بهینه‌سازی، اغلب پیش‌بینی می‌شود که این ابزار تا زمانی که پروژه کامل شود، بیشترین تأثیر را دارد، مشکل است.
"همچنین نگاه کنید به "
بهینه‌سازی می‌تواند توسط کامپایلرها یا توسط برنامه نویسان انجام شود. دستاوردها معمولاً برای بهینه‌سازی محلی محدود می‌شوند و برای بهینه‌سازی جهانی بزرگتر است. به‌طور معمول، قوی‌ترین بهینه‌سازی، یافتن یک الگوریتم برتر الگوریتم است.
بهینه‌سازی یک سیستم کلی معمولاً توسط برنامه نویسان انجام می‌شود، زیرا برای بهینه سازان خودکار بسیار پیچیده‌است. در این وضعیت، برنامه نویسان یا مدیران سیستم به صراحت کد را تغییر می‌دهند تا سیستم کلی بهتر عمل کند. اگر چه می‌تواند کارایی بهتر را تولید کند، اما به مراتب گرانتر از بهینه‌سازی خودکار است. از آنجایی که پارامترهای بسیاری بر عملکرد برنامه تأثیر می‌گذارند، فضای بهینه‌سازی برنامه بزرگ است. فراشناخت و یادگیری ماشین برای رفع پیچیدگی بهینه‌سازی برنامه استفاده می‌شود.
از بخش پروفایل (یا آنالیز کننده عملکرد) برای پیدا کردن بخش‌هایی از برنامه استفاده می‌کنید که بیشترین منابع را می‌گیرند - "تنگنا" گاهی اوقات برنامه‌نویسان معتقدند که ایده ای روشن از جایی که تنگنا است، اما شهود اغلب اشتباه است. بهینه‌سازی قطعه ای غیر مهم از کد به‌طور معمول برای انجام کار کلی کمک نمی‌کند.
هنگامی که تنگنا محلی سازی می‌شود، بهینه‌سازی معمولاً با بازخوانی الگوریتم مورد استفاده در برنامه آغاز می‌شود. اغلب اوقات الگوریتم خاصی می‌تواند به‌طور خاص برای یک مشکل خاص طراحی شده و کارایی بهتر از یک الگوریتم ژنریک را فراهم کند. برای مثال، کار مرتب‌سازی لیست عظیمی از اقلام معمولاً با یک روش مرتب‌سازی سریع انجام می‌شود که یکی از کارآمدترین الگوریتم‌های عمومی است. اما اگر برخی از ویژگی‌های مورد استفاده قابل بهره‌برداری باشد (به عنوان مثال، آن‌ها قبلاً در یک نظم خاص مرتب شده‌اند)، روش دیگری می‌تواند مورد استفاده قرار گیرد یا حتی یک مرتب‌سازی مرتب‌سازی سفارشی.
پس از اینکه برنامه‌نویس متوجه شد که بهترین الگوریتم انتخاب شده‌است، بهینه‌سازی کد می‌تواند شروع شود. حلقه‌ها می‌توانند به صورت غیرمجاز (برای سربار حلقه پایین‌تر، اگر چه اغلب می‌تواند به سرعت "پایین‌تر در" صورتی که بیش از حد حافظه نهان سی‌پی‌یو)، نوع داده‌ها به عنوان کوچک ممکن است می‌تواند استفاده شود، ریاضی عدد صحیح می‌تواند به جای نقطه شناور استفاده شود، و غیره. (نگاه کنید به مقاله کارایی الگوریتمی برای این و سایر تکنیک‌ها)
تنگناهای عملکرد می‌تواند به دلیل محدودیت‌های زبان به جای الگوریتم‌ها یا ساختارهای داده مورد استفاده در برنامه باشد. گاهی اوقات یک بخش مهم از برنامه را می‌توان دوباره در یک زبان برنامه‌نویسی متفاوت نوشت که دسترسی مستقیم به دستگاه پایه را فراهم می‌کند. برای مثال، برای زبان‌های بسیار سطح مانند Python معمول است که ماژول‌هایی که در C نوشته شده‌اند برای سرعت بیشتر باشد. برنامه‌هایی که قبلاً در C نوشته شده‌اند می‌توانند ماژول‌هایی را که در مجمع نوشته شده‌اند داشته باشند. برنامه‌های نوشته شده در دی می‌توانند از مونتاژ خطی استفاده کنند.
بخش‌های بازنویسی "پرداخت می‌شود" در این شرایط به دلیل یک قاعده کلی "شناخته شده به عنوان قانون ۹۰/۱۰، که می‌گوید ۹۰ درصد از زمان در ۱۰٪ از کد صرف، و تنها ۱۰٪ از زمان در ۹۰٪ باقی مانده از کد؛ بنابراین، تلاش فکری برای بهینه‌سازی فقط بخش کوچکی از برنامه می‌تواند تأثیر بزرگی بر سرعت کلی داشته باشد - اگر قسمت درست(ها) قابل نصب باشد.
بهینه‌سازی دستی گاهی اوقات عواقبی ناشی از خواندن را مختل می‌کند؛ بنابراین بهینه‌سازی کد باید با دقت مستندسازی شود (ترجیحا با استفاده از نظرات درون خطی)، و تأثیر آنها بر پیشرفت آینده مورد ارزیابی قرار می‌گیرد.
برنامه ای که بهینه‌سازی خودکار را انجام می‌دهد بهینه‌سازی شده‌است. اکثر بهینه‌سازها در کامپایلرها جاسازی شده و در طول تدوین کار می‌کنند. بهینه سازان اغلب می‌توانند کد تولید شده را به پردازنده‌های خاصی متصل کنند.
امروزه بهینه‌سازی خودکار تقریباً به‌طور انحصاری به بهینه‌سازی کامپایلر محدود می شود. با این حال، به دلیل اینکه بهینه‌سازی کامپایلر معمولاً به یک مجموعه ثابت و بهینه‌سازی به‌طور کلی محدود می‌شود، تقاضای قابل توجهی برای بهینه سازان وجود دارد که می‌توانند توصیف‌های مربوط به بهینه‌سازی‌های مربوط به مشکل و زبان را بپذیرند و به مهندس اجازه می‌دهد تا بهینه‌سازی‌های سفارشی را مشخص کنند. ابزارهایی که توصیف‌های بهینه‌سازی را می‌پذیرند، سیستم‌های تبدیل سیستم نامیده می‌شوند و شروع به استفاده از سیستم‌های واقعی نرم‌افزار مانند C ++ می‌شوند.
برخی از زبان‌های سطح بالا (ایفل، استرل) برنامه‌های خود را با استفاده از زبان متوسط بهینه‌سازی می‌کنند.
محاسبات گرید یا محاسبات توزیع شده به منظور بهینه‌سازی کل سیستم، با حرکت دادن وظایف از رایانه‌های با استفاده بالا به رایانه‌ها با زمان بیکاری است.
گاهی اوقات، زمان انجام شده برای انجام بهینه‌سازی در خود ممکن است یک مسئله باشد.
بهینه‌سازی کد موجود معمولاً ویژگی‌های جدیدی را اضافه نمی‌کند و بدتر از آن ممکن است اشکالات جدیدی در کد قبلی ایجاد شده باشد (همان‌طور که هر تغییر ممکن است). از آنجا که ممکن است کد بهینه‌سازی شده به صورت دستی ممکن است «قابل خواندن» کمتر از کد غیرقطعی باشد، بهینه‌سازی ممکن است باعث حفظ قابلیت نگهداری آن شود. بهینه‌سازی می‌آید در قیمت و مهم است که مطمئن شوید که سرمایه‌گذاری ارزشمند است.
بهینه‌سازی خودکار (یا کامپایلر بهینه‌سازی، برنامه ای که بهینه‌سازی کد را انجام می‌دهد) خود باید بهینه‌سازی شده باشد، یا به منظور بهبود کارایی برنامه‌های هدف خود یا افزایش سرعت عملیات خود. یک کامپایل انجام شده با بهینه‌سازی «روشن» معمولاً طول می‌کشد طول می‌کشد، اگر چه این معمولاً تنها مشکل زمانی که برنامه‌ها بسیار بزرگ است.
به‌طور خاص، برای کامپایلرهای فقط در زمان، اجزای اجزای کامپایل زمان اجرای اجرا، همراه با کد هدف خود، کلید بهبود سرعت اجرای کلی است.
موزه ملی هنر زنان یک موزه خصوصی و غیرانتفاعی در آمریکا است که در سال ۱۹۸۱ در واشینگتن دی سی توسط والس و ولمینا کول هالدی تشکیل شد. موزه ملی هنر زنان عمده‌ترین موزه در جهان است که فقط به دستاوردهای هنری زنان در زمینه هنرهای بصری، نمایشی و ادبی پرداخته‌است. در پنج سال نخست این موزه آثار زنان هنرمند را به‌طور موقت در محوطه قصر مسکونی هالدی به نمایش گذاشت.https://nmwa.org/about/our-history
این موزه از سال ۱۹۸۷ که برای اولین بار درهای خود را برای بازدید عموم باز کرد، بیش از ۴۵۰۰ اثر نقاشی، مجسمه، هنر تزیینی را جمع‌آوری کرده‌است. از جمله آثار هنرمندانی مانند مری کسات، فریدا کالو، و لوئیز الیزابت ویژه لوبرن در آن قرار دارند.
موزه ملی هنر زنان در ۹ ژانویه ۲۰۱۵ برای موفقیت در به انجام رساندن مأموریت خود جایزه سیمون دو بووار را نصیب خود کرد.
نراد کوه‌های یوآنبائو نام یک گونه از سرده نراد است.
نراد وهاری نام یک گونه از سرده نراد است.
نراد ویچی نام یک گونه از سرده نراد است.
نراد پولک‌دار نام یک گونه از سرده نراد است.
نراد هیمالیای شرقی نام یک گونه از سرده نراد است.
ارس ژولیده نام یک گونه از سرده ارس است.
نراد سیبری‌خینگان نام یک گونه از سرده نراد است.
نراد خالیسکو نام یک گونه از سرده نراد است.
ارس سالتیلو نام یک گونه از سرده ارس است.
ارس فورموزی نام یک گونه از سرده ارس است.
ارس تمساح نام یک گونه از سرده ارس است.
ارس کاماروف نام یک گونه از سرده ارس است.
ارس ریوکو نام یک گونه از سرده ارس است.
قیفک صدتومانی نام یک گونه از فراراسته تازه‌شکم‌پایان است.
باشگاه فوتبال استقلال تهران در فصل ۷۵–۱۳۷۴ پنجاهمین فصل حضور باشگاه فوتبال استقلال تهران در مسابقات فوتبال در ایران بود. استقلال در این فصل در پنجمین دوره جام آزادگان، جام آزادگان ۱۳۷۴ شرکت کرد و در نهایت عنوان سومی این جام را از آن خود کرد. استقلال همچنین در جام حذفی ۷۵–۱۳۷۴ که دهمین دوره جام حذفی فوتبال ایران بود نیز شرکت کرد و در پایان موفق شد عنوان قهرمانی این مسابقات را از آن خود کند تا برای دومین بار قهرمان جام حذفی ایران شود.
استقلال فصل قبل را با مقام دومی در جام آزادگان ۱۳۷۳ به پایان برده بود. دیدار جنجالی نیمه‌نهایی آن جام بین استقلال و پرسپولیس با محرومیت امیر قلعه‌نویی، صادق ورمزیار، محمود فکری و مسعود غفوری‌اصل به مدت شش ماه همراه بود و این امر باعث شد تا تیم هفته‌های ابتدایی فصل را بدون آن بازیکنان شروع کند. تنها خرید مهم استقلال در این فصل علی‌رضا منصوریان بازیکن جوان تیم پارس‌خودرو بود که در نهایت عنوان بهترین بازیکن جام آزادگان ۱۳۷۴ را نیز از آن خود کرد.
استقلال که فصل را با نصرالله عبداللهی به عنوان سرمربی شروع کرده بود پس از استعفای وی از مقام خود در هفته نخست هفته دوم را حمید ملک‌احمدی، دروازه‌بان سابقش به عنوان مربی موقت به پایان رساند و از هفته سوم منصور پورحیدری را به عنوان سرمربی برگزید تا پدر استقلال بعد از سه فصل دوری از این تیم مجدداً بر روی نیمکت استقلال بنشیند. استقلال در بازی‌های لیگ نتایج پرنوسانی داشت و تمام تیم‌های مدعی و بالای جدول را برد اما در مقابل تیم‌های پایین جدولی امتیازات فراوانی از دست تا در نهایت به عنوان سومی بسنده کند. در ادامه کار و بعد از پایان لیگ استقلال در جام حذفی شرکت کرد و در این جام موفق ظاهر شد و در نهایت عنوان قهرمانی این جام را از آن خود کرد. دیدار نهایی این جام به دلیل زیر کشت رفتن زمین چمن ورزشگاه آزادی با تأخیر فراوان و در تیر ماه ۱۳۷۵ برگزار شد.
در یازدهمین دوره مسابقات جشنواره هفته بسیج تیم امید استقلال به اضافه چند تن از بازیکنان بزرگسال شرکت کرد که در دیدار فینال این بازیها در ضربات پنالتی مغلوب تیم پیروزی شد و در جایگاه دوم قرار گرفت.
استقلال در ۱۸ مهر ۱۳۷۴ یک بازی دوستانه با تیم ملی فوتبال سنگاپور به مناسبت خداحافظی شاهین بیانی کاپیتان سابق‌اش برگزار کرد. این بازی در ورزشگاه آزادی برگزار شد و با پیروزی ۲–۱ استقلال به پایان رسید.
تیم استقلال در این سال در دومین دوره جام نقش جهان اصفهان شرکت کرد و با تیم‌های کشاورز تهران، سپاهان اصفهان و تیم ملی امید ایران (المپیک ایران) هم‌گروه شد که پس از یک برد، یک شکست و یک تساوی به خاطر تفاضل گل کمتر موفق به صعود به دور بعدی این جام نشد.
شاکله اصلی استقلال در این بازیها را تیم امید تشکیل داده بود و چند تن از بازیکنان بزرگسال نیز در بازیها به میدان رفتند.
هدایت استقلال در دو بازی اول لیگ به ترتیب بر عهده نصرالله عبداللهی و حمید ملک‌احمدی بود و از هفته سوم و در بقیه بازی‌های لیگ و جام حذفی تیم را منصور پورحیدری هدایت کرده‌است. در سه بازی جام نقش جهان اصفهان تیم را نصرالله عبداللهی هدایت کرد.
قرارداد فراخوانی در علوم رایانه، یک طرح سطح پیاده‌سازی (یعنی سطح پایین) برای تعیین آنکه زیرروال‌ها چگونه پارامترها را از فراخوان کننده دریافت می‌کنند و نیز چگونه یک نتیجه را بازمی‌گردانند، است. این تفاوت‌های پیاده‌سازی شامل انواع قرارگیری محل پارامتر، مقادیر بازگشتی، آدرس‌های بازگشتی، و پیوند دامنه (مثلا در ثبات، پشته، یا حافظه و غیره) می‌شود، همچنین شامل اینکه چگونه فعالیت‌های آماده‌شدن برای یک فراخوانی با تابع، و بازیابی محیط پس از آن، بین فراخواننده و فراخوان شده تقسیم بشود، است.
قراردادهای فراخوانی ممکن است به یک استراتژی ارزیابی زبان برنامه‌نویسی خاص مربوط باشند، اما اغلب آن‌ها بخشی از آن (یا برعکس) نیستند، زیرا استراتژی ارزیابی معمولاً در سطح انتزاعی تری (بالاتری) تعریف شده‌است و به عنوان بخشی از زبان دیده می‌شود به جای جزئیات پیاده‌سازی (سطح پایین) یک زبان خاص کامپایلر.
قراردادهای فراخوانی ممکن است در موارد زیر متفاوت باشند:
در برخی موارد، تفاوت‌ها زیر نیز شامل موارد می‌شوند:
اگر چه "برخی" زبان در واقع ممکن است این تا حدی در مشخص زبان برنامه‌نویسی مشخصات (یا در برخی اجرای محوری)، پیاده‌سازی‌های مختلف از جمله زبان (به عنوان مثال مختلف کامپایلر) به‌طور معمول ممکن است هنوز هم استفاده از کنوانسیون‌های مختلف فراخوانی، اغلب انتخاب. دلایل این کار عملکرد، سازگاری مکرر با توافقنامه‌های دیگر زبان‌های محبوب (با توجه به یا بدون دلایل فنی)، و محدودیت‌ها یا قراردادهای اعمال شده توسط «سیستم عامل‌های مختلف» (ترکیبی از معماری CPU و سیستم عامل) است.
معماری‌های CPU همیشه دارای بیش از یک قرارداد فراخوانی ممکن هستند. با تعداد زیادی از ثبات‌های کلی و سایر ویژگی‌ها، پتانسیل چند قرارداد فراخوانی زیاد است، اگر چه برخی معماری به‌طور رسمی مشخص شده‌است که فقط از یک قرارداد فراخوانی استفاده کند که توسط معمار ارائه شده‌است.
معماری x86 از قراردادهای فراخوانی مختلفی استفاده می‌کند. با توجه به کم بودن ثبات‌ها، قراردادهای فراخوانی x86 اغلب آرگومان را در پشته منتقل می‌کنند، در حالی که مقدار بازگشتی (یا اشاره گر به آن) در یک ثبات منتقل می‌شود. برخی از قراردادها از ثبات‌ها برای چند پارامتر اول استفاده می‌کنند که ممکن است باعث بهبود عملکرد و سریعتر شدن برای زیرروال - برگ (یعنی روال‌هایی که با روشی دیگر فراخوانی نشده و نیازی به بازنگری ندارند) که مکرراً استفاده می‌شود شود.
مثال فراخوانی:
معماری PowerPC دارای تعداد زیادی از ثبات‌ها است، بنابراین اکثر توابع می‌توانند تمام آرگومنت‌ها را در رجیسترها برای فراخوانی‌های "تک مرحله ای منتقل" کنند. آرگومان‌های اضافی در پشته منتقل می‌شوند و برای آرگومان‌های رجیستر-پایه (مقادیری باید در رجیستر ذخیره شود) همیشه فضای مناسب در پشته تخصیص داده می‌شود تا فراخوانی تابع در موارد فراخوانی چند مرحله ای (بازگشتی) راحت‌تر شودو ثبات‌ها باید ذخیره شوند. همچنین در توابع variadic مانند codice_1، جایی که پارامترهای تابع باید به صورت آرایه قابل دسترسی باشند. تنها یک قرارداد فراخوانی برای تمام زبان‌های رویه ای استفاده می‌شود.
معماری SPARC، بر خلاف اکثر معماری‌های RISC، بر روی ثبات‌های پنجره ای ساخته شده‌است. ۲۴ ثبات قابل دسترسی در هر پنجره ثبات وجود دارد: ۸ ثبات در (in) , 8 ثبات ثبات محلی هستند و ۸ تا ثبات (out).
ثبات "in" برای ارسال آرگومنت‌ها به تابع مورد نظر استفاده می‌شود و هر آرگومان اضافی باید بر روی پشته قرار گیرد. با این حال، فضا همیشه توسط تابع صدا زده شده اختصاص داده می‌شود برای مدیریت سرریز احتمالی ثبات پنجره ای، متغیرهای محلی، و (در SPARC 32 بیتی) بازگشت ساختار بر اساس ارزش(by value). برای فراخوانی یک تابع، یک مکان که در آن آرگومنت‌ها قرار می‌گیرد ثبات‌های پنجره ای out هستند؛ هنگامی که تابع نامیده می‌شود، ثبات "out" تبدیل به ثبات"in" می‌شود و تابع فراخوانی شده به آرگومان‌های موجود در ثبات "in" دسترسی دارد. هنگامی که تابع صدا زده شده تمام می‌شود، مقدار برگشتی را در اولین ثبات "in" قرار می‌دهد، که تبدیل به اولیت ثبات "out " می‌شود هنگام برگشتن از تابع فراخوانی شده.
این تغییرپذیری باید در هنگام ترکیب ماژول‌های نوشته شده در چندین زبان یا هنگام فراخوانی سیستم عامل یا کتابخانهAPI‌ها از یک زبان غیر از آن که در آن نوشته شده باشد، در نظر گرفته شود. در این موارد، باید مراقبت‌های ویژه ای را برای هماهنگ‌کردن قراردادهای فراخوانی مورد استفاده توسط صدا زننده و صدا زده شده انجام شود. حتی یک برنامه که از یک زبان برنامه‌نویسی استفاده می‌کند، می‌تواند از قراردادهای فراخوانی چندگانه یا انتخاب شده توسط کامپایلر، برای بهینه‌سازی کد یا برنامه‌نویس مشخص شده‌استفاده کند.
کد ریسه ای همه مسئولیت را برای تنظیم و تمیز کردن کد پس از فراخوانی تابع بر روی کد صدا زده شده دارد. کد صدا زده شده چیزی نیست جز فهرست زیرروال‌هایی که باید فراخوانی شوند. این باعث می‌شود تمام تابع تنظیم و تمیز کردن در یک مکان - prolog و epilog تابع - و نه در بسیاری از مکان‌هایی که عملکرد نامیده می‌شود. این باعث می‌شود کد رشته کمترین قرارداد فراخوانی.
کد ریسه ای تمام آرگومان‌های مربوط به پشته را منتقل می‌کند. تمام مقادیر برگشتی در پشته بازگشته‌اند. این باعث می‌شود پیاده‌سازی ساده از قرارداد فراخوانی‌هایی که مقادیرهای بیشتری در ثبات‌ها دارند، کندتر شود. با این حال، پیاده‌سازی کد ریسه ای که چندین مقدار پشته بالا را در رجیسترها ذخیره می‌کند - به ویژه، آدرس بازگشت - معمولاً سریع تر از قراردادهای فراخوانی است که همیشه آدرس بازگشت به پشته را push و popمی‌کند.براد رودریگز. "حرکت به جلو، قسمت 1: تصمیم‌گیری طراحی در هسته چهارم". نقل قول: "در 6809 یا Zilog Super8 DTC سریعتر از STC است."آنتور اورتل "سرعت روش‌های مختلف ارسال تفسیر".متیو زالسکی. "YETI: یک مترجم پیشرفته قابل گسترش". فصل 4: طراحی و اجرای تفسیر کارآمد. نقل قول: "اگرچه مترجمان مستقیم-رشته شناخته شده دارای ویژگی‌های پیش بینی شاخه ضعیف هستند … تاخیر تماس و بازگشت ممکن است بیشتر از یک حرکت غیر مستقیم باشد."
قرارداد فراخوانی پیش فرض برای برنامه‌های نوشته شده در زبان PL / I تمام آرگومان را با مرجع منتقل می‌کند (by reference)، هرچند ممکن است قراردادهای دیگر مشخص شود. رفتار کردن با آرگومنت‌ها برای کامپایلرها و سیستم عامل‌ها مختلف متفاوت است، اما معمولاً آدرس‌های آرگومنت‌ها توسط یک لیست آرگومان در حافظه منتقل می‌شوند. یک آدرس نهایی یا پنهان ممکن است به یک منطقه منتقل شود تا حاوی مقدار بازگشتی باشد. به دلیل طیف گسترده‌ای از داده‌های پشتیبانی شده توسط PL / I، توصیفگر داده نیز ممکن است برای تعریف پاس داده شود، به عنوان مثال، طول رشته‌های کاراکتر یا بیت، ابعاد و طول آرایه‌ها. "آرگومان‌های ساختگی" آرگومان‌هایی هستند که یا ثابت هستند یا با نوع ورودی ای که انتظار می‌رود متفاوت‌اند.
سمفونی شماره ۹۸ در سی بِمُل ماژور، هوبوکن یک/۹۸ (Hoboken I/98)، ششمین سمفونی از مجموعهٔ دوازده سمفونی لندن (شماره‌های ۹۳–۱۰۴) اثر یوزف هایدن است.
هایدن سمفونی ۹۸ را در سال ۱۷۹۲ و جزو مجموعهٔ سمفونی‌های سفرِ نخستش به لندن تصنیف کرد. این اثر نخستین بار در ۲ مارس ۱۷۹۲ در تالارهای «میدان هانوفرِ» لندن و به رهبریِ خودِ آهنگساز، پشتِ هارپسیکورد، اجرا شد.
سمفونی شماره ۹۸ هایدن برای ارکستر کلاسیک متشکل از یک فلوت، دو ابوا، دو فاگوت (باسون)، دو کُر (هورن)، دو ترومپت، تیمپانی، سازهای زهی، و هارپسیکورد سازبندی شده‌است.
اجرای کاملِ این اثر به‌طور معمول حدودِ ۲۶ دقیقه زمان می‌بَرَد.
نظریهٔ نمایشی کارهایی را گویند که می‌کوشند نظریاتی در نمایش پیش نهند. "فن شعر" ارسطو و نظریهٔ تئاتر رواییِ اروین پیسکاتور نمونه‌هایی از نظریهٔ نمایشی به شمار می‌روند.