بهینه سازهای وب

تقویت کننده
تقویت‌کننده

آمپلی فایر یا تقویت کننده های الکترونیکی در موسیقی برای تقویت صدای سازهای پیکاپ داری مانند گیتار الکتریک، گیتار باس، ویولون و ... استفاده می شود.






عملکرد دستگاه

امپلی فایرها در به طور عمده دارای دو مدار الکتریکی به نام دریافت سیگنال صدا (Pre Amp) و تقویت کنندهٔ صدا (Power Amp) هستند. از مهمترین قطعاتی که در کیفیت صدای یک امپ بسیار مهم است وجود یک لامپ خلا می‌باشد. در گذشته در تمامی آمپلی فایرها از لامپ خلا استفاده می شد اما با گذشت زمان و روی کار آمدن ترانزیستورها، جایگزین مناسبی برای لامپ‌های خلأ به میدان آمد که از لحاظ هزینه بسیار کمتر از لامپ‌های خلأ بود. اما صدای تولید شده از خازن‌ها هیچگاه کیفیت صدای تولید شده توسط لامپ‌های خلأ را نداشت و به همین دلیل در بسیاری از موارد حرفه‌ای از همان لامپ‌های خلأ قدیمی استفاده می‌شود.





بلندگوی لسلی
بلندگوی لسلی ( بلندگوی گردان ) (به انگلیسی: Leslie Speaker) ساختاریست تشکیل شده از تقویت کننده/بلندگو که برای ایجاد تغییر در صدا با استفاده از اثر داپلر توسط دانلد لسلی اختراع شده.





تقویت‌کننده الکترونیکی

تقویت کننده الکترونیکی وسیله‌ای برای افزایش توان سیگنال می‌باشد. تقویت کننده شکل سیگنال ورودی را حفظ کرده اما دامنه بزرگتر آن را بزرگتر می‌کند.

از تقویت کننده ها برای تقویت صدای سازهای مانند گیتار الکتریک، گیتار باس، ویولن برای تقویت انواع خروجی های صدا مانند دستگاه های پخش خانگی، دستگاه های پخش خودرو و برای تقویت صداهای ضبط شده در مسیر دستگاه های ضبط صدا در استودیو های صوتی استفاده می شود.





بلندگو

بلندگو به گونه‌ای دستگاه مبدل انرژی گفته می‌شود که انرژی الکتریکی را به صدا تبدیل می‌کند. واژه بلندگو ممکن است تنها به یک ترانسدیوسر (که به آن درایور گویند) و یا به سیستمی شامل چندین درایور و همچنین دیگر قطعات الکترونیکی اطلاق شود. بلندگو بخشی از هر سیستم صوتی است و معمولاً تفاوت کیفیت در سیستم‌های صوتی ناشی از این بخش است و بیشترین اعوجاج در صدا در این بخش صورت می‌گیرد.






تاریخچه

فیلیپ رئیس یک بلندگوی الکتریکی را در سال ۱۸۶۳ در تلفن خود نصب کرد که قادر بود صدایی واضح را مجددا تولید کند.





بلندگوی رایانه
بلندگوی رایانه (به انگلیسی: Computer speaker) دستگاهی از دسته سخت‌افزار رایانه است که وظیفه‌ی انتقال صوت به بیرون از رایانه را دارا می‌باشد؛ این دستگاه‌ها بیشتر دارای یک آمپلی‌فایر (تقویت‌کننده الکترونیکی) داخلی با قدرت کم هستند.ارتباط صوتی استاندارد این دستگاه‌ها با رایانه از طریق کابل ۳٫۵ میلی متری (حدود یک هشتم اینچ) که رابط تی‌آراس نام دارد و اغلب به رنگ سبز مغزپسته‌ای است برقرار می‌شود.





مانیتور استودیو

مانیتور استودیو نوعی از بلندگوها است که برای تولید برنامه‌های کاربردی مخصوص استودیو ضبط کاربرد دارد. فرق این بلندگوها با بلندگوهای معمولی در این است که صدای خارج‌شونده از این دستگاه‌ها فاقد هرگونه تغییر و بیس بوده و صرفاً هرآنچه که درآن وارد می‌شود را خارج می‌کند. در اغلب موارد برای تفکیک بهتر صداهای ورودی این قطعه نیازمند تقویت‌کننده الکترونیکی است.






صدا

صدا یا صوت از انواع انرژی است که از تحرک ذرات ماده بوجود می‌آیند به این گونه که یک ذره با حرکت (برخورد) خود به ذره‌ای دیگر ذرهٔ دیگر را به حرکت در می‌آورد و به همین ترتیب است که صوت نشر می‌یابد. صدا ارتعاشیست که توسط حس شنوایی انسان درک میشود. ما معمولاً اصواتی که در هوا حرکت میکنند را میشنویم ولی صدا میتواند در گاز، مایع و حتی جامدات نیز حرکت کند.صدا ص َ (ع اِ) ۞ معرب «سدا» است ۞ و آن آوازی باشد که در کوه و گنبد وامثال آن پیچد و باز همان شنیده شود و در عربی نیز همین معنی را دارد .

سرعت صوت در جامدات بدلیل تراکم زیاد مولکولها، بیشتر از مایعات و در مایعات نیز بیشتر از گازها است. صوت بر خلاف امواج دیگر مانند نور و گرما فقط در محیطی نشر می‌یابد که ماده وجود داشته باشد و این بدین معناست که اگر بر سطح ماه (که هوایی وجود ندارد) انفجاری روی دهد شما هیچ وقت صدای آنرا نمی‌شنوید. از واحد دسی‌بل نیز برای اندازه گیری شدت صوت استفاده می‌کنند. محدودهٔ شنوایی انسان بین ۲۰ تا ۲۰۰۰۰ هرتز می‌باشد.






خصوصیات صدا

ویژگیهای صدا عبارتند از بسامد، طول موج، دامنه و سرعت
بسامد و طول موج

بسامد تعداد تغییرات فشار هوا در هر ثانیه در یک نقطه ی ثابت است که موج صدا در حال گذر از آن میباشد. یک چرخه ی نوسانی ساده در یک ثانیه برابر با یک هرتز است. طول موج برابر فاصله ی بین دو قله ی متوالی بوده که موج در مدت زمان یک چرخه ی نوسانی آنرا طی میکند.






سرعت صوت

سرعت انتشار صوت بستگی به نوع، دما و فشار محیطی که صوت در آن منتشر میشود دارد. در شرایط طبیعی از آنجایی که هوا تقریباً بصورت یک گاز کامل رفتار میکند سرعت صوت وابسته به فشار هوا نخواهد بود. در هوای خشک در دمای 20 درجه ی سانتیگراد سرعت صوت حدوداً 343 متر در ثانیه یعنی حدوداً یک متر در هر 3 هزارم ثانیه است. سرعت صوت همچنین وابسته به بسامد و طول موج است. بنابراین یک صوت 343 هرتزی طول موج یک متر خواهد داشت.

واژهٔ «صدا»، معرب (عربی‌شدهٔ) «سدا»ی پارسی است.






سرعت صوت

سرعت صوت (به انگلیسی: Speed of sound)، فاصله‌ای‌ست که یک موج صوتی در مدت زمان یک ثانیه در یک سیال می‌پیماید. سرعت صوت مشخص می‌کند که این موج در بازهٔ مشخصی از زمان چه مسافتی را طی می‌کند. در هوای خشک و در دمای ۲۰ درجه سانتی‌گراد (۶۸ درجه فارنهایت)، سرعت صوت ۳۴۳٫۲ متر بر ثانیه (۱۱۲۶ فوت بر ثانیه)، ۱۲۳۶ کیلومتر بر ساعت (۷۶۸ مایل بر ساعت) یا به طور تقریبی، یک کیلومتر در سه ثانیه و یا تقریباً یک مایل در پنج ثانیه است. در دینامیک سیالات، سرعت صوت در یک سیال (گاز یا مایع)، به عنوان یک ابزار حساب‌گری نسبی خود سرعت استفاده می‌شود. سرعت یک شیئ (فاصله بر زمان) تقسیم بر سرعت صوت در سیال به عنوان عدد ماخ شناخته می‌شود. اشیایئ که با سرعت بیشتر از یک ماخ حرکت می‌کنند، در سرعت‌های سوپرسونیک حرکت می‌کنند.

سرعت صوت در یک گاز ایده‌آل، مستقل از فرکانس است وتابعی از ریشهٔ دوم دمای مطلق است ولی به فشار یا چگالی آن گاز وابسته نیست. برای گازهای مختلف، سرعت صوت به طور معکوس به ریشه دوم میانگین جرم مولکولی گاز بستگی دارد.

در گفتگوهای مرسوم روزمره، منظور از سرعت صوت، سرعت موج صوتی در سیالِ هوا است. با این حال، سرعت صوت از یک ماده به مادهٔ دیگر متفاوت است. صوت در مایعات و جامدات نامتخلخل سریع‌تر از هوا، حرکت می‌کند. می‌توان گفت سرعت صوت در آب حدود ۴٫۳ برابر (۱۴۸۴ متر بر ثانیه)، و در آهن تقریباً ۱۵ برابر (۵۱۲۰ متر بر ثانیه) سرعت آن در هوای ۲۰ درجه سانتی‌گراد است.

سرعت صوت در فلزات و جامدات، مایعات، درون محیط‌هایی که فشردگی هوای آن‌ها نسبت به محیط آزاد بیشتر است، مناطق سرد و مرطوب و پست تر از دریا، مناطق سرد و مرطوب در کنار دریا، مناطق سرد و مرطوب بالاتر از دریا، مناطق مرطوب بالاتر از دریا نسبت به هوای آزاد در حالت عادی به ترتیب ذکر شده بیشتر است. صوت از محیط‌هایی که مادی نیستند (در آنجا ماده وجود ندارد) نمی‌تواند عبور کند.






صدای انسان

صدای انسان متشکل از صوتی است که با استفاده از تارهای صوتی توسط انسان ساخته شده و برای صحبت کردن ، آواز خواندن ، خندیدن ، گریه کردن ، فریاد زدن و ... مورد استفاده قرار می گیرد.

تارهای صوتی فقط بخشی از صدای اولیه ی انسان را می سازند و به طور کلی مکانیزم تولید صدای انسان را می توان به سه بخش ریه ، تارهای صوتی موجود در حنجره و مفاصل تقسیم بندی کرد.

ریه ( پمپ ) باید جریان هوا و فشار هوای کافی را برای ارتعاش تارهای صوتی تولید کند تارهای صوتی یک دریچه ی ارتعاشی هستند که جریان هوا را از ریه صادر می کند تا پالس های قابل شنیدنی را به صورت یک منبع صدا در حنجره تولید نمایند.عضلات حنجره ، طول و تنش تارهای صوتی را برای ایجاد تن صدایی بسیار خوب تنظیم می کنند .

مفاصل ( بخش هایی از دستگاه صوتی در قسمت فوقانی حنجره شامل زبان ، کام ، گونه ، لب ها و غیره ) ، صدای نشأت گرفته از حنجره را واضح و شفاف و به نوعی فیلتر می کنند و تا حدی می توانند جریان هوای حنجره را به عنوان یک منبع صدا تقویت یا تضعیف نمایند .

تارهای صوتی در ترکیب با مفاصل قادر به تولید آرایه های بسیار پیچیده ای از صدا هستند . تن یا لحن صدا می تواند بیانگر احساسات مختلف انسان باشد : مانند خشم ، تعجب یا شادی .

خواننده ها از صدای انسان به عنوان ابزاری برای ایجاد موسیقی استفاده می کنند .






مهندسی صوت
مهندسی صوت (به انگلیسی: Acoustical engineering) قسمتی از علم صوت است که با ضبط و تکثیر صوت توسط وسایل الکتریکی و مکانیکی سروکار دارد. مهندسی صوت از رشته‌های مختلفی بهره می‌برد از جمله: مهندسی برق، صوت‌شناسی (acoustics)، روانشناسی صوتی (psychoacoustics) و موسیقی.






نوروصوت‌شناسی

نوروصوت‌شناسی یا آکوستو-اپتیک (Acousto-optics) شاخه‌ای از فیزیک است که به بررسی برهم کنش امواج نوری و امواج صوتی و به خصوص پراش لیزر به وسیلهٔ امواج صوتی می‌پردازد.

اپتیک تاریخچه‌ای بسیار طولانی دارد: از زمان یونانیان باستان تا عصر حاضر درست مانند اپتیک، آکوستیک نیز تاریخچه‌ای طولانی دارد که به زمان یونانیان باستان باز می‌گردد. در مقابل آکوستو اپتیک علمی بسیار نوین با تاریخچه‌ای کوتاه‌است. این زمینه از علم با پیش بینی بریلوئن در مورد پراش نور بوسیلهٔ امواج صوتی منتشر شده در ماده در سال ۱۹۲۲ میالادی آغاز شد. این پیش بینی ده سال بعد توسط دبای و سیرز و همچنین لوکاس و بیکارد آزمایش و تایید شد.

مورد خاص پراش مرتبهٔ اول تحت یک زاویهٔ فرود خاص (که بریلوئن هم پیش بینی آن را کرده بود) برای اولین بار توسط ریتوف دیده شد. رامان و نث در سال ۱۹۳۷ یک مدل عمومی تر را طراحی کردند که پراش‌های مرتبهٔ بالاتر را آشکار کند. این مدل بعدها در سال ۱۹۵۶ توسط فریزو توسعه پیدا کرد. مدل وی قابل تنظیم بر مرتبهٔ پراشی مشخص بود.

اساس نوروصوت‌شناسی، تغییر ضریب شکست به خاطر حضور موج صوتی در ماده‌است. موج صوتی یک شبکهٔ ضریب شکست در ماده به وجود می‌آورد و این شبکه توسط موج نوری "دیده" می‌شود. تغییر ضریب شکست که به خاطر نوسان فشار ایجاد شده، به وسیله آثار شکست نور، بازتاب نور، تداخل و پراش قابل شناسایی است.






آکوستو اپتیک

آکوستو اپتیک شاخه ای از فیزیک است که به بررسی برهم کنش امواج نوری و امواج صوتی و به خصوص پراش لیزر به وسیله ی امواج صوتی می پردازد.







مقدمه

اپتیک تاریخچه ای بسیار طولانی دارد: از زمان یونانیان باستان تا عصر حاضر درست مانند اپتیک، آکوستیک نیز تاریخچه ای طولانی دارد که به زمان یونانیان باستان باز می گردد. در مقابل آکوستو اپتیک علمی بسیار نوین با تاریخچه ای کوتاه است. این زمینه از علم با پیش بینیبریلوئندر مورد پراش نور بوسیله ی امواج صوتی منتشر شده در ماده در سال 1922 میالادی آغاز شد. این پیش بینی ده سال بعد توسط دبای و سیرز و همچنین لوکاس و بیکارد آزمایش و تایید شد.

مورد خاص پراش مرتبه ی اول تحت یک زاویه ی فرود خاص (که بریلوئن هم پیش بینی آن را کرده بود) برای اولین بار توسط ریتوف دیده شد. رامان و نث در سال 1937 یک مدل عمومی تر را طراحی کردند که پراش های مرتبه ی بالاتر را آشکار کند. این مدل بعد ها در سال 1956 توسط فریزو توسعه پیدا کرد. مدل وی قابل تنظیم بر مرتبه ی پراشی مشخص بود.

اساس آکوستو اپتیک، تغییر ضریب شکست به خاطر حضور موج صوتی در ماده است. موج صوتی یک شبکه ی ضریب شکست در ماده به وجود می آورد و این شبکه توسط موج نوری "دیده" می شود. تغییر ضریب شکست که به خاطر نوسان فشار ایجاد شده، به وسیله آثار شکست نور، بازتاب نور، تداخل و پراش قابل شناسایی است.






ابزارهای الکترو اپتیکی

ابزار های آکوستو اپتیکی شامل سه گروه زیر هستند:

1- مدولاتور الکترو اپتیکی

با تغییر پارامترهای موج صوتی مانند دامنه، فاز، فرکانس، و قطبش می توان خواص موج نوری را مدوله کرد. برهمکنش نور و صوت همچنین امکان مدوله کردن زمانی و فضایی موج نوری را فراهم می آورد.

یک راه ساده برای مدوله کردن پرتوی اپتیکی عبور نور از محیطی است که در آن موج صوتی به طور متناوب روشن و خاموش شود. وقتی صوت خاموش باشد زاویه ی پراش صفر و نور بی تغییر است. با روشن شدن صوت پراش رخ می دهد و شدت صوت در زوایای پراش افزایش ی یابد. با ثابت نگاه داشتن فرکانس صوتی و تغییر در توان مولد صوت می توان این ابزار را به یک مدولاتور آکوستواپتیکی تبدیل نمود. در طراحی مدولاتور باید به نحوی عمل کرد که ماکزیمم شدت نور در پرتوی پراشیده رخ بدهد. مدت زمانی که طول می کشد صوت از ماده عبور کند نیز محدودیتی بر سرعت سوییچ کردن تحمیل می کند. برای همین پرتوی نوری را تا حد ممکن باریک می کنند. باریک ترین پرتوی نوری ممکن را حد پهنای باند می نامند.

2- فیلتر های الکترو اپتیکی

رابطه ی 4 ارتباطی را میان طول موج صوتی و طول موج نوری نشان می دهد. در واقع پرتوی نوری تابیده شده، اگر دارای تعداد زیادی طول موج باشد فقط در طول موج های خاصی پراکنده می شود. مابقی طول موج ها فیلتر خواهند شد.

3- منحرف کننده های الکترو اپتیکی

با ایجاد یک تغییر در فرکانس صوت می توان تغییر زاویه ای در پرتوی نوری ایجاد کرد.





پژواک

پژواک (اکو)، بازگشت صدا از دیوار یا سایر اشیاست. صدا با سرعتی مشخّص و ثابت (نزدیک به ۳۴۴ متر بر ثانیه) حرکت می‌کند؛ بنابراین می‌توانیم با استفاده از پژواک، فاصلهٔ برخی از اشیا را محاسبه کنیم. دستگاه عمق‌سنج کشتی، برای محاسبهٔ عمق دریا از پژواک بهره می‌گیرد.

پژواک، خفّاش را قادر می‌سازد تا در تاریکی پرواز کند. رادار نیز از خاصیّت پژواک (وبا استفاده از امواج رادیویی) در کشف هدف بهره می‌گیرد.





فرامواد

متامتریال یا فرامواد به ماده مرکبی گفته می‌شود که دارای خواص نامتعارف الکترومغناطیس در ساختار وجودی خود است. آنچه این مواد را غیر معمول کرده است، خاصیت ضریب شکست منفی نور در آنها است، به این معنا که این مواد نور را در جهت مخالف مواد عادی منکسر می‌کنند. مواد الکترومغناطیس تشکیل دهنده آنها می‌تواند با دستکاری مختصر و دقیق ساختارشان «تنظیم» نیزبشود.

این مواد از ترکیب میله‌های ریز و مجموعه‌ای از حلقه‌های فلزی و مانند آنان ساخته شده است که برای اولین بار توسط دیوید اسمیت (David Smith استاد دانشگاه کالیفرنیا) ساخته شد. خواص نامتعارف این مواد سبب شده است از آنها در زمینه‌های مختلف استفاده شود از جمله آنها در مهندسی مایکروویو است که می‌توان به کاربرد در موجبرها، جبران پاشندگی، آنتن‌های هوشمند، لنزها و نمونه‌های فراوان دیگر استفاده کرد.
page1 - page2 - page3 - page4 - page5 - page7 - page8 - | 11:49 pm
نوع گذاری ایستا و متحرک

در نوع گذاری ایستا تمام عبارات نوع‌های خود را قبل از اجرای برنامه تعیین می‌کنند(معمولاً در زمان کامپایل). برای مثال، ۱ و (۲+۲) عبارات عددی هستند؛ آنها نمی‌توانند به تابعی که نیاز به یک رشته دارد داده شوند، یا در متغیری که تعریف شده تا تاریخ را نگه دارد، ذخیره شوند.





زبان‌های نوع گذاری شده ایستا می‌توانند با مانیفست نوع گذاری شوند یا با استفاده از نوع استنباط شوند. در حالت اول، برنامه نویس بیشتر صریحاً نوع‌ها را در جایگاه‌های منتنی مشخص می‌نویسد(برای مثال، در تعریف متغیرها). در حالت دوم، کامپایلر نوع عبارات و تعریف‌ها را بر اساس متن استنباط می‌کند. غالب زبان‌های مسیر اصلی(mainstream) ایستا نوع گذاری شده، مانند C#,C++ و Java، با مانیفست نوع گذاری می‌شوند



نوع گذاری قوی و ضعیف

نوع گذاری ضعیف این امکان را ایجاد می‌کند که با متغیری به جای متغیری دیگر برخورد شود، برای مثال رفتار با یک رشته به عنوان یک عدد. این ویژگی بعضی اوقات ممکن است مفید باشد، اما ممکن است باعث ایجاد برخی مشکلات برنامه شود که موقع کامپایل و حتی اجرا پنهان بمانند.

نوع گذاری قوی مانع رخ دادن مشکل فوق می‌شود. تلاش برای انجام عملیات روی نوع نادرست متغیر منجر به رخ دادن خطا می‌شود. زبان‌هایی که نوع گذاری قوی دارند غالباً با نام "نوع-امن" و یا امن شناخته می‌شوند. تمام تعاریف جایگزین برای "ضعیف نوع گذاری شده" به زبان‌ها اشاره می‌کند، مثل perl, JavaScript, C++، که اجازه تعداد زیادی تبدیل نوع داخلی را می‌دهند. در جاوااسکریپت، برای مثال، عبارت ۲*x به صورت ضمنی x را به عدد تبدیل می‌کند، و این تبدیل موفقیت آمیز خواهد بود حتی اگر x خالی، تعریف نشده، یک آرایه، و یا رشته‌ای از حروف باشد. چنین تبدیلات ضمنی غالباً مفیدند، اما خطاهای برنامه نویسی را پنهان می‌کنند.

قوی و ایستا در حال حاضر عموماً دو مفهوم متعامد فرض می‌شوند، اما استفاده در ادبیات تفاوت دارد، برخی عبارت "قوی نوع گذاری شده" را به کار می‌برند و منظورشان قوی، ایستایی نوع گذاری شده‌است، و یا، حتی گیچ کننده تر، منظورشان همان ایستایی نوع گذاری شده‌است. بنابراین C هم قوی نوع گذاری شده و هم ضعیف و ایستایی نوع گذاری شده نامیده می‌شود.



معناشناسی اجرا

وقتی که داده مشخص شد، ماشین باید هدایت شود تا عملیات‌ها را روی داده انجام دهد. معناشناسی اجرا ی یک زبان تعیین می‌کند که چگونه و چه زمانی ساختارهای گوناگون یک زبان باید رفتار برنامه را ایجاد کنند.

برای مثال، معناشناسی ممکن است استراتژی را که بویسله آن عبارات ارزیابی می‌شوند را تعریف کند و یا حالتی را که ساختارهای کنترلی تحت شرایطی دستورها را اجرا می‌کنند.


کتابخانه هسته
اغلب زبان‌های برنامه نویسی یک کتابخانه هسته مرتبط دارند(گاهی اوقات "کتابخانه استاندارد" نامیده می‌شوند، مخصوصا وقتی که به عنوان قسمتی از یک زبان استاندارد ارائه شده باشد)، که به طور قراردادی توسط تمام پیاده سازی‌های زبان در دسترس قرار گرفته باشند. کتابخانه هسته معمولاً تعریف الگوریتم‌ها، داده ساختارها و مکانیزم‌های ورودی و خروجی پرکاربرد را در خود دارد. کاربران یک زبان، غالباً با کتابخانه هسته به عنوان قسمتی از آن رفتار می‌کنند، اگرچه طراحان ممکن است با آن به صورت یک مفهوم مجزا رفتار کرده باشند. بسیاری از خصوصیات زبان هسته‌ای را مشخص می‌کنند که باید در تمام پیاده سازی‌ها موجود باشند، و در زبان‌های استاندارد شده این کتابخانه هسته ممکن است نیاز باشد. بنابراین خط بین زبان و کتابخانه هسته آن از زبانی به زبان دیگر متفاوت است. درواقع، برخی زبان‌ها به گونه‌ای تعریف شده‌اند که برخی از ساختارهای دستوری بدون اشاره به کتابخانه هسته قابل استفاده نیستند. برای مثالف در جاوا، یک رشته به عنوان نمونه‌ای از کلاس “java.lang.String” تعریف شده است؛ مشابها، در سمال تاک(smalltalk) یک تابع بی نام(یک "بلاک") نمونه‌ای از کلاس BlockContext کتابخانه می‌سازد. بطور معکوس، Scheme دارای چندین زیرمجموعه مرتبط برای ایجاد سایر ماکروهای زبان می‌باشد، و در نتیجه طراحان زبان حتی این زحمت را نیز تحمل نمی‌کنند که بگویند کدام قسمت زبان به عنوان ساختارهای زبان باید پیاده سازی شوند، و کدام یک به عنوان بخشی ازکتابخانه.


عمل
طراحان زبان و کاربران باید مصنوعاتی ایجاد کنند تا برنامه نویسی را در عمل ممکن سازند و کنترل کنند. مهمترین این مصنوعات خصوصیات و پیاده سازی‌های زبان هستند.



خصوصیات

یک زبان برنامه نویسی باید تعریفی فراهم کند که کاربران و پیاده کننده‌های زبان می‌توانند از آن استفاده کنند تا مشخص کنند که رفتار یک برنامه درست است. با داشتن کد منبع: خصوصیات یک زبان برنامه نویسی چندین قالب می‌تواند بگیرد، مانند مثال‌های زیر:

تعریف صریح دستور، معناشناسی ایستا، ومعناشناسی اجرای زبان. درحالیکه دستور معمولاً با یک معناشناسی قراردادی مشخص می‌شود، تعاریف معناشناسی ممکن است در زبان طبیعی نوشته شده باشند (مثل زبان C)، یا معناشناسی قراردادی(مثل StandardML ,Scheme)
توضیح رفتار یک مترجم برای زبان(مثل C,fortran). دستور و معناشناسی یک زبان باید از این توضیح استنتاج شوند، که ممکن است به زبان طبیعی یا قراردادی نوشته شود.
پیاده سازی منبع یا مدل. گاهی اوقات در زبان‌های مشخص شده(مثل: prolog,ANSI REXX).دستور و معناشناسی صریحاً در رفتار پیاده سازی مدل موجودند.


پیاده سازی

پیاده سازی یک زبان برنامه نویسی امکان اجرای آن برنامه را روی پیکربندی مشخصی از سخت‌افزار و نرم‌افزار را فراهم می‌کند. بطور وسیع، دو راه رسیدن به پیاده سازی زبان برنامه نویسی وجود دارد. کامپایل کردن و تفسیر کردن. بطور کلی با هر بک از ابن دو روش می‌توان یک زبان را پیاده سازی کرد.

خروجی یک کامپایلر ممکن است با سخت‌افزار و یا برنامه‌ای به نام مفسر اجرا شود. در برخی پیاده سازی‌ها که از مفسر استفاده می‌شود، مرز مشخصی بین کامپایل و تفسیر وجود ندارد. برای مثال، برخی پیاده سازی‌های زبان برنامه نویسی بیسیک کامپایل می‌کنند و سپس کد را خط به خط اجرا می‌کنند.

برنامه‌هایی که مستقیماً روی سخت‌افزار اجرا می‌شوند چندین برابر سریعتر از برنامه‌هایی که با کمک نرم‌افزار اجرا می‌شوند، انجام می‌شوند.

یک تکنیک برای بهبود عملکرد برنامه‌های تفسیر شده کامپایل در لحظه آن است. در این روش ماشین مجازی، دقیقاً قبل از اجرا، بلوک‌های کدهای بایتی که قرار است استفاده شوند را برای اجرای مستقیم روی سخت‌افزار ترجمه می‌کند.



تاریخچه
پیشرفت‌های اولیه

اولین زبان برنامه نویسی به قبل از رایانه‌های مدرن باز می‌گردد. قرن ۱۹ دستگاه‌های نساجی و متون نوازنده پیانو قابل برنامه نویسی داشت که امروزه به عنوان مثال‌هایی از زبان‌های برنامه نویسی با حوزه مشخص شناخته می‌شوند. با شروع قرن بیستم، پانچ کارت‌ها داده را کد گذاری کردند و پردازش مکانیکی را هدایت کردند. در دهه ۱۹۳۰ و ۱۹۴۰، صورت گرایی حساب لاندای آلونزو چرچ و ماشین تورینگ آلن تورینگ مفاهیم ریاضی بیان الگوریتم‌ها را فراهم کردند؛ حساب لاندا همچنان در طراحی زبان موثر است.

در دهه ۴۰، اولین رایانه‌های دیجیتال که توسط برق تغذیه می‌شدند ایجاد شدند. اولین زبان برنامه نویسی سطح بالا طراحی شده برای کامپیوتر پلانکالکول بود، که بین سال‌های ۱۹۴۵ و ۱۹۴۳ توسط کنراد زوس برای ز۳ آلمان طراحی شد.

کامپیوترهای اوایل ۱۹۵۰، بطور خاص ÜNIVAC ۱ و IBM ۷۰۱ از برنامه‌های زبان ماشین استفاده می‌کردند. برنامه نویسی زبان ماشین نسل اول توسط نسل دومی که زبان اسمبلی نامیده می‌شوند جایگزین شد. در سال‌های بعد دهه ۵۰، زبان برنامه نویسی اسمبلی، که برای استفاده از دستورات ماکرو تکامل یافته بود، توسط سه زبان برنامه نویسی سطح بالا دیگر: FORTRAN,LISP , COBOL مورد استفاده قرار گرفت. نسخه‌های به روز شده این برنامه‌ها همچنان مورد استفاده قرار می‌گیرند، و هر کدام قویا توسعه زبان‌های بعد را تحت تاثیر قرار دادند. در پایان دهه ۵۰ زبان algol ۶۰ معرفی شد، و بسیاری از زبان‌های برنامه نویسی بعد، با ملاحظه بسیار، از نسل algol هستند. قالب و استفاده از زبان‌های برنامه نویسی به شدت متاثر از محدودیت‌های رابط بودند.



پالایش

دوره دهه ۶۰ تا اواخر دهه ۷۰ گسترش مثال‌های عمده زبان پرکاربرد امروز را به همراه داشت. با این حال بسیاری از جنبه‌های آن بهینه سازی ایده‌های اولیه نسل سوم زبان برنامه نویسی بود:

APL برنامه نویسی آرایه‌ای را معرفی کرد و برنامه نویسی کاربردی را تحت تاثیر قرار داد.
PL/i(NPL) دراوایل دهه ۶۰ طراحی شده بود تا ایده‌های خوب فورترن و کوبول را بهم پیوند دهد.
در دهه ۶۰، Simula اولین زبانی بود که برنامه نویسی شئ گرا را پشتیبانی می‌کرد، در اواسط دهه۷۰. Smalltalk به دنبال آن به

عنوان اولین زبان کاملاً شئ گرا معرفی شد.

C بین سال‌های ۱۹۶۹ تا ۱۹۷۳ به عنوان زبان برنامه نویسی سیستمی طراحی شد و همچنان محبوب است.
Prolog، طراحی شده در ۱۹۷۲، اولین زبان برنامه نویسی منطقی بود.
در ۱۹۷۸ ML سیستم نوع چند ریخت روی لیسپ ایجاد کرد، و در زبان‌های برنامه نویسی کاربردی ایستا نوع گذاری شده پیشگام شد.

هر یک از این زبان‌ها یک خانواده بزرگ از وارثین از خود به جای گذاشت، و مدرنترین زبان‌ها از تبار حداقل یکی از زبان‌های فوق به شمار می‌آیند.

دهه‌های ۶۰ و ۷۰ مناقشات بسیاری روی برنامه نویسی ساخت یافته به خود دیدند، و اینکه آیا زبان‌های برنامه نویسی باید طوری طراحی شوند که آنها را پشتیبانی کنند.

"ادسگر دیکسترا" در نامه‌ای معروف در ۱۹۶۸ که در ارتباطات ACM منتشر شد، استدلال کرد که دستورgoto باید از تمام زبان‌های سطح بالا حذف شود.

در دهه‌های ۶۰ و ۷۰ توسعهٔ تکنیک‌هایی صورت گرفت که اثر یک برنامه را کاهش می‌داد و در عین حال بهره وری برنامه نویس و کاربر را بهبود بخشید. دسته کارت برای ۴GL اولیه بسیار کوچکتر از برنامهٔ هم سطح بود که با ۳GL deck نوشته شده بود.




یکپارچگی و رشد

دهه ۸۰ سال‌های یکپارچگی نسبی بود. C++ برنامه نویسی شئ گرا و برنامه نویسی سیستمی را ترکیب کرده بود. ایالات متحده ایدا(زبان برنامه نویسی سیستمی که بیشتر برای استفاده توسط پیمان کاران دفاعی بود) را استاندارد سازی کرد. در ژاپن و جاهای دیگر، هزینه‌های گزافی صرف تحقیق در مورد زبان نسل پنجم می‌شد که دارای ساختارهای برنامه نویسی منطقی بود. انجمن زبان کاربردی به سمت استانداردسازی ML و Lisp حرکت کرد. به جای ایجاد مثال‌های جدید، تمام این تلاش‌ها ایده‌هایی که در دهه‌های قبل حلق شده بودند را بهتر کرد.

یک گرایش مهم در طراحی زبان در دهه ۸۰ تمرکز بیشتر روی برنامه نویسی برای سیستم‌های بزرگ از طریق مدول‌ها، و یا واحدهای کدهای سازمانی بزرگ مقیاس بود. مدول-۲، ایدا. و ML همگی سیستم‌های مدولی برجسته‌ای را در دهه ۸۰ توسعه دادند. با وجود اینکه زبان‌های دیگر، مثل PL/i، پشتیبانی بسیار خوبی برای برنامه نویسی مدولی داشتند. سیستم‌های مدولی غالباً با ساختارهای برنامه نویسی عام همراه شده‌اند.

رشد سریع اینترنت در میانه دهه ۹۰ فرصت‌های ایجاد زبان‌های جدید را فراهم کرد. Perl، در اصل یک ابزار نوشتن یونیکس بود که اولین بار در سال ۱۹۸۷ منتشر شد، در وب‌گاه‌های دینامیک متداول شد. جاوا برای برنامه نویسی جنب سروری مورد استفاده قرار گرفت. این توسعه‌ها اساساً نو نبودند، بلکه بیشتر بهینه سازی شده زبان و مثال‌های موجود بودند، و بیشتر بر اساس خانواده زبان برنامه نویسی C بودند. پیشرفت زبان برنامه نویسی همچنان ادامه پیدا می‌کند، هم در تحقیقات و هم در صنعت. جهت‌های فعلی شامل امنیت و وارسی قابلیت اعتماد است، گونه‌های جدید مدولی(mixin، نماینده‌ها، جنبه‌ها) و تجمع پایگاه داده.

۴GLها نمونه‌ای از زبان‌هایی هستند که محدوده استفاده آنها مشخص است، مثل SQL. که به جای اینکه داده‌های اسکالر را برگردانند، مجموعه‌هایی را تغییر داده و بر می‌گردانند که برای اکثر زبان‌ها متعارفند. Perl برای مثال، با "مدرک اینجا" خود می‌تواند چندین برنامه ۴GL را نگه دارد، مانند چند برنامه جاوا سکریبت، در قسمتی از کد پرل خود و برای پشتیبانی از چندین زبان برنامه نویسی با تناسب متغیر در "مدرک اینجا" استفاده کند.




سنجش استفاده از زبان

مشکل است که مشخص کنیم کدام زبان برنامه نویسی بیشتر مورد استفاده‌است، و اینکه کاربرد چه معنی می‌دهد با توجه به زمینه تغییر می‌کند. یک زبان ممکن است زمان بیشتری از برنامه نویس بگیرد، زبان دیگر ممکن است خطوط بیشتری داشته باشد، و دیگری ممکن است زمان بیشتری از پردازنده را مصرف کند. برخی زبان‌ها برای کاربردهای خاص بسیار محبوبند. برای مثال: کوبول همچنان در مراکزداده متحد، غالباً روی کامپیوترهای بزرگ توانا است؛ fortran در مهندسی برنامه‌های کاربردی، C در برنامه‌های تعبیه شده و سیستم‌های عامل؛ و بقیه برنامه‌ها معمولاً برای نوشتن انواع دیگر برنامه‌ها کاربرد دارند. روش‌های مختلفی برای سنجش محبوبیت زبان‌ها، هر یک متناسب یا یک ویژگی محوری متفاوت پیشنهاد شده‌است:

شمارش تعداد تبلیغات شغلی که از آن زبان نام می‌برند.
تعداد کتاب‌های آموزشی و شرح دهندهٔ آن زبان که فروش رفته‌است.
تخمین تعداد خطوطی که در آن زبان نوشته شده اند- که ممکن است زبان‌هایی را که در جستجوها کمتر پیدا می‌شوند دست کم گرفته شوند.
شمارش ارجاع‌های زبان(برای مثال، به اسم زبان) در موتورهای جستجوهای اینترنت.

طبقه بندی‌ها هیچ برنامه غالبی برای دسته بندی زبان‌های برنامه نویسی وجود ندارد. یک زبان مشخص معمولاً یک زبان اجدادی ندارد. زبان‌ها معمولاً با ترکیب المان‌های چند زبان پیشینه بوجود می‌آیند که هربار ایده‌های جدید درگردشند. ایده‌هایی که در یک زبان ایجاد می‌شوند در یک خانواده از زبان‌های مرتبط پخش می‌شوند، و سپس از بین خلاهای بین خانواده‌ها منتقل شده و در خانواده‌های دیگر ظاهر می‌شوند.

این حقیقت که این دسته بندی ممکن است در راستای محورهای مختلف انجام شوند، این وظیفه را پیچیده تر می‌کند؛ برای مثال، جاوا هم یک زبان شیءگرا(چون به برنامه نویسی شیءگرا تشویق می‌کند) و زبان همزمان(چون ساختارهای داخلی برای اجرای چندین جریان موازی دارد) است. پایتون یک زبان اسکریپتی شیءگراست.

در نگاه کلی، زبان‌های برنامه نویسی به مثال‌های برنامه نویسی و یک دسته بندی بر اساس محدوده استفاده تقسیم می‌شوند. مثال‌ها شامل برنامه نویسی رویه‌ای، برنامه نویسی شیءگرا، برنامه نویسی کاربردی، وبرنامه نویسی منطقی؛ برخی زبان‌ها ترکیب چند مثالند. یک زبان اسمبلی مثالی از یک مدل مستقیم متضمن معماری ماشین نیست. با توجه به هدف، زبان‌های برنامه نویسی ممکن است همه منظوره باشند، زبان‌های برنامه نویسی سیستمی، زبان‌های اسکریپتی، زبان‌های محدوده مشخص، زبان‌های همزمان/ گسترده(و یا ترکیب اینها). برخی زبان‌های همه منظوره تا حد زیادی برای اهداف آموزشی طراحی شده‌اند.

یک زبان برنامه نویسی ممکن است با فاکتورهای غیر مرتبط به مثال‌های برنامه نویسی دسته بندی شود. برای مثال، غالب زبان‌های برنامه نویسی کلمات کلیدی زبان انگلیسی را استفاده می‌کنند، در حالیکه تعداد کمی این کار را نمی‌کنند. سایر زبان‌ها ممکن است براساس داخلی بودن یا نبودن دسته بندی شوند.
ساعت : 11:49 pm | نویسنده : admin | بهینه سازهای وب | مطلب قبلی
بهینه سازهای وب | next page | next page