حمید عسکری
حمید عسکری (زاده ۲۰ مهر ۱۳۵۷ در کازرون) خواننده پاپ، آهنگساز و ترانه سرای ایرانی است.او با ترانه قسمت معروف شد.





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




البوم‌ها

دلبریده
کما ۱
کما ۲
کما ۳
خوشبختی




موسیقی پاپ
موسیقی پاپ (به انگلیسی: Pop music، که در اصل به معنی موسیقی عامه‌پسند (popular) می‌باشد) یک سبک از موسیقی عامه‌پسند است و معمولاً در مقابل موسیقی کلاسیک و فولک (محلی) قرار می‌گیرد و از آن ها متمایز است. * با این حال هنرمندان این سبک در سبک‌های راک، هیپ‌هاپ، دنس، ریتم اند بلوز (R&B) و کانتری هم می‌توانند فعالیت داشته باشند و این باعث می‌شود که تبدیل به سبکی انعطاف‌پذیر شود. عبارت «موسیقی پاپ» همچنین می‌تواند به یک زیرسبک خاص (درون پاپ) اشاره داشته باشد مانند سافت راک و پاپ/راک.
مشخصات پاپ به عنوان یک زیرسبک

پاپ معمولاً به عنوان موسیقی‌ای تعریف می‌شود که به شکل تجاری تهیه می‌شود یا هدف تولید آن سود مالی است. بنا به تعریف سایمون فریت، منتقد موسیقی و جامعه‌شناس متخصص موسیقی مردم پسند، موسیقی پاپ بیشتر به عنوان یک صنعت شناخته می‌شود نه هنر. البته این موسیقی را می‌توان در حیطه بازار، ایدئولوژی، تولید و زیبایی‌شناسی هم معنا کرد. درواقع، پاپ طوری طراحی شده که «برای همه جالب باشد» و «از هیچ جای خاصی نیامده» و قرار هم نیست «سلیقه خاصی را اعمال کند».




پیشینهٔ موسیقی پاپ
دههٔ ۱۹۳۰ و ۱۹۴۰

این نوع موسیقی از سبک‌های بلوز (شیکاگو)، و کانتری (تنسی) تأثیر گرفت.




دههٔ ۱۹۵۰

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




دههٔ ۱۹۶۰

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




دههٔ ۱۹۷۰

در این دوره موسیقی دیسکوی بی‌جیز، پیانوی بیلی جوئل و التون جان، کانتری ایگلز، هنرمندان راک/پاپ مانند خولیو ایگلسیاس راد استوارت، استیلی دان و فلیتوود مک گل کرد. ای‌بی‌بی‌ای گروه سوئدی بودند که با مسابقه ترانه یوروویژن به شهرت رسیدند و انقلابی در موسیقی پاپ کردند.




دههٔ ۱۹۸۰

برجسته‌ترین خوانندهٔ این دوره، مایکل جکسون بود که با انتشار آلبوم‌های «تریلر» (پرفروش ترین آلبوم موسیقی جهان تا به امروز) و «بـد» (یکی از پرفروش‌ترین آلبوم‌های تاریخ) تغییرات بنیادی و ساختار شکنی را در سبک‌های موسیقی و به خصوص سبک پاپ، ایجاد کرد. مایکل جکسون را «سلطان پاپ» و مدونا را «ملکهٔ پاپ» می‌نامند. سایر هنرمندان این دوره عبارت‌اند از مدرن تاکینگ (که با تک آهنگ «You are my heart you are my soul» توانست چندین هفته در صدر جدول‌ها باشد)، مایکل بولتون، پرینس، جانت جکسون، دوران دوران، گروه پلیس، سیندی لاپر، ویتنی هوستون، فیل کالینز، کایلی مینوگ وپائولا عبدل و کالچر کلاب.




دههٔ ۱۹۹۰ و قرن ۲۱

دههٔ ۱۹۹۰ و قرن ۲۱ با مد شدن گروه‌های پسر و گروه‌های دختر چهره دیگری گرفت. در انگلستان گروه‌های تیک دت، بلو، اسپایس گرلز وارد شدند. گروه‌های ایرلندی این دوره بوی‌زون و وست‌لایف بودند. آمریکا هم بک‌استریت بویز و هنسون و 'ان سینک را داشت، و افرادی مانند ویلا فورد، مندی مور، بریتنی اسپیرز و کریستینا اگیولرا هم به عنوان «پرنسس پاپ» شناخته می‌شوند. در سال ۱۹۹۹ سبک لاتین پاپ را ریکی مارتین عرضه کرد و توسط افرادی مانند جنیفر لوپز، شکیرا، انریکه ایگلسیاس و مارک آنتونی دنبال شد.

در سال ۲۰۰۲ عضو قدیمی ' ان سینک یعنی جاستین تیمبرلیک با آغاز با یک آلبوم انفرادی به یک موفقیت تجاری دست یافت و به عنوان «پرنس پاپ» شناخته شد. تین پاپ در کانال دیزنی توسط ستارگانی چون هیلاری داف به وجود آمد، گروه‌های بریتانیایی پاپ راک چون باستد و مک‌فلای، و خواننده-آهنگساز «پاپ-فانک» کانادایی اوریل لوین در دههٔ ۲۰۰۰ به شهرت رسیدند. خوانندگانی که سبک‌های دیگر پاپ را دربرمی گیرند عبارت‌اند از ویتنی هوستون و ماریا کری در R&B، گارث بروکس و شانیا توین در کانتری، و در دنس پاپ کایل منگ و مدونا که یکی از پر فروش‌ترین خوانندگان تمام دوران بود. مطرحان موسیقی پاپ که در بین بینندگان جذابیت یافتند افرادی مانند سلن دیون و نورا جونز بودند. همچنین مدرن تاکینگ با ۱۱ سال غیبت در عرصه موسیقی از سال ۱۹۸۷ تا ۱۹۹۸ دوباره در سال ۹۸ آغاز به کار کرد. آلبوم آنها تحت عنوان Back for good در هفته اول ۷۰۰۰۰۰ نسخه فروخت و یک بار دیگر مانند سال ۱۹۸۴ در بازار فروش موسیقی همهمه کرد.




خواننده

خواننده به زبان فارسی دری «آوازخوان» یک موسیقی‌دان است که از صدای خود برای ایجاد موسیقی استفاده می‌کند. اغلب، خواننده با موسیقی‌دانان و آلت‌های موسیقی همراه می‌شود. با وجود آن‌که بسیاری از افراد برای تفریح می‌خوانند، تکنیک و مهارت خواندن (vocal skill)، اغلب ترکیبی از استعداد ذاتی و آموزش‌های حرفه‌ای است.

یک خوانندهٔ اصلی (lead singer)، آوازهای اصلی را برای یک آهنگ اجرا می‌کند؛ که درمقابل یک خوانندهٔ پشتیبان (backing singer) قرار دارد که آوازهای پشتیبان (پس‌زمینه) یا هارمونی را می‌خواند. یک استثنا موسیقی پنج‌قسمتهٔ بی‌ساز گاسپل است که در آن خوانندهٔ اصلی، بلندترین صدا را در میان پنج صدا دارد و یک descant (نوعی سرود مناجاتی) را می‌خواند اما ملودی را اجرا نمی‌کند.

خواننده‌های حرفه‌ای، اغلب تحت تعلیم یک معلم موسیقی آواز قرار می‌گیرند.




پیشینه خوانندگی در ایران

از مهمترین مُهرنگاره های خنیاگری (:موسیقی) در جهان؛ باید از آنچه که در "چوغامیش" خوزستان برجای مانده، یاد کرد که در سالهای ۱۹۶۱-۱۹۶۶ میلادی، یافت شده است. این مهرنگاره ۳۴۰۰ ساله؛ سیمایی از بزم رامشگران را نشان میدهد. در این بزم باستانی، دسته ای خنیاگر(:نوازنده) دیده میشوند که هر کدام، به نواختن سازی سرگرم هستند. چگونگی نواختن و نشستن این رامشگران، نشان میدهد که آنها، نخستین دسته خنیاگران(:ارکستر) جهان هستند. در این گروه رامشگران، میبینیم که نوازنده ای "چنگ" و دیگری "شیپور" و آن دیگر "تنبک" مینوازد. چهارمین رامشگر در این میان، خواننده ای است که "آواز" میخواند.





صدای انسانی

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

خوانندگان، اغلب حرفهٔ خود را پیرامون استایل‌های معینی بنا می‌کنند. سامانه‌های رده‌بندی صدایی تا کنون پیشرفت‌هایی برای دسته‌بندی خوانندگان بر اساس محدودهٔ صوتی (tessitura)، وزن صدایی (vocal weight) و طنین (timbre) داشته‌اند. خوانندگان موسیقی دسته‌جمعی بر اساس محدودهٔ صدایی دسته‌بندی می‌شوند (محدودهٔ موزیکال را ببینید.) سایر دسته‌ها عبارت‌اند از: سوبرت (soubrette)، هلدنتنور (heldentenor)، کالرئتوئرا (coloratura) و بسو بوفو (basso buffo).

هم‌چنین رده‌هایی برای مردانی که می‌توانند در محدودهٔ صدایی زنانه بخوانند وجود دارد. این نوع صدا اغلب نادر است، اما هم‌چنان در اپرا استفاده می‌شود. در موسیقی باروک، بسیاری از نقش‌ها برای خوانندگان کاستراتو (castrato) نوشته می‌شد. کاستراتوها، خوانندگان مردی بودند که در بچگی عمل اختهٔ صدا روی آن‌ها انجام گرفته‌است تا از تغییر صدای آن‌ها جلوگیری شود. یک مرد با این نوع صدا، ممکن است یک کاونترتنور (خواننده ای که صدای بسیار بلند وغیر عادی دارد، countertenor) (مناسب برای نقش‌های Castrato Alto) یا سوپرانیست (ششدانگ‌خوان) (مناسب برای نقش‌های Castrato Soprano) باشد.

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




خوانندگان اصلی و پشتیبان
در بسیاری از گروه‌های موسیقی جدید، یک خواننده وجود دارد که بخش‌های اصلی را می‌خواند (خوانندهٔ اصلی) و یک یا بیش از یکی که آوازهای پشتیبان (پس‌زمینه) را می‌خواند. هدف از آوازهای پشتیبان خواندن قسمت‌هایی مشخص از یک ترانه است، اما کمتر از ۵۰٪، یا فقط قسمت‌های تکراری با همهمه‌های پس‌زمینه را بخواند. خوانندگان پس‌زمینه در طی خواندن‌های دسته‌جمعی نیز شرکت می‌کنند و برای ایجاد تأثیرات، ایجاد صدا می‌کنند. برای بعضی دلایل، بندهای با یک خواننده‌های اصلی، اغلب مرد هستند. بندهای مناسب برای دو جنس (مذکر و مؤنث)، اغلب خوانندهٔ اصلی مؤنث دارند.



آهنگساز

آهنگساز شخصی است که آثار موسیقی تألیف می‌نماید. آهنگساز در حقیقت نویسندهٔ موسیقی است که با احاطهٔ کامل به علم موسیقی ایده‌های فکری خود را در قالب موسیقی به رشتهٔ تحریر در می‌آورد. آهنگسازی این نیست که شخص ملودی بسازد و یا تنها در صورتی که قطعه‌ای موسیقایی ساخت وی لقب آهنگساز را به خود نسبت دهد؛ بلکه آهنگساز مانند هر حرفهٔ علمی دیگر می‌بایست در مراکز آموزش علمی موسیقی در رشته آهنگسازی تحصیل و یا می‌بایست از علوم مختلف موسیقی از جمله رهبری ارکستر، سازشناسی، سازبندی، هارمونی، پُلی‌فونی، کنتراپوئن و... که لازمهٔ کار آهنگسازی است برخوردار باشد.

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

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




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




ریشه واژهٔ موسیقی

واژهٔ موسیقی از واژه‌ای یونانی و گرفته شده از کلمهٔ Mousika و مشتق از کلمهٔ Muse می‌باشد .

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




تعاریف گذشتگان از موسیقی

پیشینیان موسیقی را چنین تعریف کرده‌اند: معرفت الحان و آنچه التیام الحان بدان بود و بدان کامل شود. ارسطو موسیقی را یکی از شاخه‌های ریاضی می‌دانسته و فیلسوفان اسلامی نیز این نظر را پذیرفته‌اند، همانند ابن سینا که در بخش ریاضی کتاب شفا از موسیقی نام برده‌است ولی از آنجا که همه ویژگی‌های موسیقی مانند ریاضی مسلم و غیرقابل تغییر نیست، بلکه ذوق و قریحه‌ی سازنده و نوازنده هم در آن دخالت تام دارد، آن را هنر نیز می‌دانند. در هر صورت موسیقی امروز دانش و هنری گسترده‌است که دارای بخش‌های گوناگون و تخصّصی می‌باشد.

صدا در صورتی موسیقی نامیده می‌شود که بتواند پیوند میان اذهان ایجاد کند و مرزی از جنس انتزاع آن را محدود نکند.

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

ابونصر فارابی:موسیقی علم شناسایی الحان است و شامل دو علم است;علم موسیقی عملی وعلم و موسیقی نظری

ابوعلی سینا: موسیقی علمی است ریاضی که در آن از چگونگی نغمه‌ها از نظر ملایمت و سازگاری، و چگونگی زمان‌های بین نغمه‌ها بحث می‌شود.

بتهوون: موسیقی مظهری است عالی‌تر از هرعلم و فلسفه ای. موسیقی هنرزبان دل و روح بشر و عالی‌ترین تجلی قریحه‌ی انسانی است.

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

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

ابن خردادبه: موسیقی ذهن را لطیف و خوی را ملایم و جان را شاد و قلب را دلیر و بخیل را بخشنده می‌کند، آفرین بر خردمندی که موسیقی را پدید آورد.



نظریه‌های زیبایی‌شناسی درباره موسیقی



سه نظریه زیبایی شناسی درباره موسیقی وجود دارد:

موسیقی به مثابه زبان احساسات
موسیقی به مثابه نماد احساس
ذات موسیقی صدا و حرکت است

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




تاریخچه زیبایی‌شناسی در موسیقی

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

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

نظریه‌های زیبایی شناسی موسیقی که به این پرسش پاسخ می‌دهند در دو گروه کلی جای می‌گیرند؛

نظریه‌های قایل به وابستگی که ارزش زیبایی شنلسانه موسیقی را بر حسب روابط آن با امر دیگری خارج از موسیقی تبیین می‌کنند، و این امر معمولأ احساس است.
نظریه‌های قایل به استقلال که ارزش زیبایی شنلسانه موسیقی را وابسته به امری خارج از موسیقی نمی دانند بلکه آن را وابسته به ویژگیهای ذاتی موسیقی تلقی می‌کنند.


تقسیم‌بندی موسیقی

موسیقی به روشهای بسیاری تقسیم‌بندی می شود.




بر اساس دوره ی هنری پیدایش

موسیقی گریگورین
موسیقی دوره باروک
موسیقی کلاسیک
موسیقی مدرن




بر اساس ساختار آوا شناسی

کوانتو تونیک (موسیقی دارای نت های جداگانه مشخص با فاصله موسیقیایی)
استریم تونیک (موسیقی بدون فواصل - موسیقی دارای نتهای پیوسته)





بر اساس ساختار گامها

گام کروماتیک
گام دیاتونیک





بر اساس تعداد نت‌ها در گام:

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





از دیدگاه ضرباهنگ

موسیقی بی‌ضرب - آن است که دارای وزنی آشکار نباشد که نمونهٔ آن برخی آوازهای موسیقی ایرانی هستند.
موسیقی آهنگین یا رِنگ (Rhythmic) به موسیقی‌هایی گفته می‌شود که دارای وزن باشد مانند آهنگ‌هایی که برای رقص ساخته شده باشد؛ پیش در آمد، مارش و غیره.
لارگو (خیلی آرام و آهسته)
آداجیو (آهسته)
پرستو (خیلی تند)
آلگرو (تند)
آندانته (معمولی)
آلگرتو




از دیدگاه ناحیه پیدایش

موسیقی بومی
موسیقی نواحی
موسیقی شرقی
موسیقی غربی
موسیقی ایرانی
موسیقی عربی
موسیقی فلامنکو
موسیقی کانتری

(و بسیاری نواحی دیگر)

از دیدگاه خاستگاه معنایی-کلامی و جایگاه اجتماعی





موسیقی مذهبی
موسیقی آیینی (به عنوان مثال موسیقی عرفانی و یا موسیقی صوفی گری موسیقی عروسی و یا عزا )
موسیقی پاپ
موسیقی راک
موسیقی رپ
موسیقی کودک
نوحه خوانی
تواشیح





از لحاظ اولویت کلام یا ساز

موسیقی کلامی
موسیقی بی‌کلام





از دیدگاه کاربردی

موسیقی درمانی مانند موسیقی زار جنوب ایران و یا موسیقی های مخصوص آرامش و مدیتیشن
موسیقی رقص
موسیقی فیلم
موسیقی نظامی (مارشه)





از لحاظ سازبندی (ارکستراسیون) و آوایی

موسیقی تک سازی (Solo)
موسیقی سمفونیک
موسیقی اپرا
دو نوازی (دوئت)
سه نوازی (تریو)
چهارنوازی (کوارتت)
موسیقی تلفیقی (فیوژن)
موسیقی ضربی
موسیقی آرشه ای (مانند کوارتت زهی، گروه سازهای بادی)
موسیقی آوایی (وکال) - مانند آثار ارکستر آوازی تهران و یا گروه کر کلسیا




بر پایه فرم موسیقی

سونات
سمفونی
پرلود (پبش درآمد)
مینوئت
پیشنوا (اُورتور)
کنسرتو
لایتموتیف یا نغمه معرف (leitmotiv به معنی نغمهٔ راهبر یا شاخص)

بر اساس دستگاه یا مقام که برای موسیقی سنتی ایرانی هفت دستگاه به همراه ۵ آواز برمی‌شمارند مانند دستگاه ماهور، دستگاه شور، بیات ترک. هر دستگاه می‌تواند تعدادی «گوشه» داشته باشد. همچنین در موسیقی ایرانی ۱۲ مقام برشمرده‌اند مانند مقام راست، زیر، اصفهان، حجاز.

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




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





برخی آلات موسیقی
نی

نی از قـدیمی ترین این نوع است و شامل یک لوله استوانه‌ای از جـنس نی بوده که دارای هـفت بـند و شش گـره‌است. نی از دسته سازهـای محـلی است و تـقـریـبا در تمام نقاط ایران معـمول و رایج است.




سرنا

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




کـرنا

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




نی انبان

نی انبان بـیـشتر در جنوب ایران مورد استـفاده قـرار می‌گیرد و در بعـضی نقاط ایران آن را " خـیک نای " نـیز می‌نامند و در نقاطی از آذربایجان نیز نواخته می‌شود.




آلات موسیقی زهـی
کمانچـه

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




بربط

بربط: سازی از خانواده سازهای رشته‌ای مفـید که به آن " ال عـود یا لوت " نیز می‌گـویـند. ساخـتمان این ساز شـبـیه گـلابی است که از درازا به دو نـیم شده‌است. دارای کاسه‌ای بـزرگ و دسته‌ای کوتاه که در آغاز سه رشته سیم داشته‌است.





رباب

رباب: این ساز زهـی است از چـهـار قـسمت شامل شکم خـربزه مانـند، سینه، دسته و سر تـشـکـیل شده‌است. سیم‌های رباب در قدیم از روده و امروز از نخ نایلون ساخـته می‌شود و مضراب رباب از پـر مرغ ساخـته شده‌است. این ساز اساساً سازی محلی است و بـیـشتر در نواحی خراسان معـمول است و هـمچـنـین در نواحی سیستان نیز نواخـته می‌شود.




تار

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




گیتار

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




آلات موسیقی ضـربی

از سازهای ضربی معـروف ایرانی دهـل، طبل و تـنـبک می‌باشـند.




دهـل

دهـل: این ساز از استوانه کوتاهی از جـنس چـوب که قـطر دایره آن حـدود یک مـتر و ارتـفاع آن ۲۵ تا ۳۰ سانتی متر است تـشکـیل شده و بر دو سطح دایره‌ای شکـل آن پـوست کـشـیده شده‌است. مضرابـش دو چـوب یکی به شکـل عـصا و دیگـری ترکه‌ای نازک می‌باشد. دهـل سازی کاملاً محـلی و بـیـشـتر هـمراهـی کـنـنده با سرنا است. در مناطق فارس، بلوچستان و کـردستان بـیش از سایر جاها مورد استـفاده قـرار می‌گـیرد.




دایـره

دایره: این ساز ضربی که از حلقه‌ای چوبی تـشـکیل گـردیده که بر یکی از سطوح جانبی دایره‌ای شکل آن پـوست کشـیده شده‌است، این ساز را با ضرب سر انگـشتان هـر دو دست می‌نوازند و بـیـشتر شهـری است تا محـلی. سازی است هـمراهی کـنـنده با سایر سازهـا. دایره در حال حاضر در آذربایجان بـیـشـتر از سایر جاهـا رواج دارد.




طبل

طبل: یکی دیگر از سازهای ضربی که کوچکـتر از دهـل می‌باشد و مضراب آن دو کوبه چوبی است و آن را در مراسم عـزاداری در اکثـر مناطق ایران می‌نوازند.




تـنـبک

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




سازهای مضربی (زهـی - کوبی)

ساز منحصربه‌فرد ایرانی که در این تـقـسیم بـندی قـرار می‌گـیرد سنـتور است. این ساز شامل جـعـبه‌ای ذوزنقه‌ای است و هـفـتاد و دو رشته سیم سفـید و زرد تـشکـیل یافـته‌است.

سنـتور اساساً سازی است که قابـلیت تـکـنوازی و هـمنوازی را داراست و نواخـتن آن در تمام استان‌های ایران متـداول است.





موسیقی کلاسیک
موسیقی کلاسیک به موسیقی هنری اروپا گفته می‌شود. شروع این موسیقی را از سده‌های میانه در حدود سال ۵۰۰ پس از میلاد می‌دانند.




دوره‌های موسیقی کلاسیک

موسیقی کلاسیک را از نظر سبک و تحوّل تاریخی آن به چند دوره کوچک‌تر تقسیم کرده‌اند.




موسیقی سده‌های میانه

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




موسیقی رنسانس

در این دوره که شامل سالهای ۱۴۰۰ تا ۱۶۰۰ میلادی می‌شود. موسیقی کلاسیک به طور عمده در ایتالیا شکل گرفته‌است و بیشتر قطعات آثار آوازی هستند.
5:12 am
کاربرد برنامه نویسی

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





زبان‌های برنامه نویسی با غالب زبان‌های انسانی تفاوتی دارد و آن این است که نیاز به بیان دقیق تر و کامل تری دارد. هنگام استفاده از زبان‌های طبیعی برای ارتباط با دیگر انسان‌ها، نویسندگان و گویندگان می‌توانند مبهم باشند و اشتباهات کوچک داشته باشند، و همچنان انتظار داشته باشند که مخاطب آنها متوجه شده باشد. اگرچه، مجازا، رایانه‌ها "دقیقاً آنچه که به آنها گفته شده را انجام می‌دهند." و نمی‌توانند "بفهمند" که نویسنده دقیقاً چه کدی مد نظر نویسنده بوده‌است] البته امروزه برنامه‌هایی برای انجام این کار تولید شده‌اند و تلاش‌های بسیاری در این زمینه انجام شده ولی هنوز به نتیجهٔ رضایت بخشی نرسیده است[. ترکیب تعریف زبان، یک برنامه، و ورودی برنامه بطور کامل رفتار خروجی را به هنگام اجرای برنامه (در محدوده کنترل آن برنامه) مشخص می‌کند. برنامه‌های یک رایانه ممکن است در یک فرایند ناپیوسته بدون دخالت انسان اجرا شوند، یا یک کاربر ممکن است دستورات را در یک مرحله فعل و انفعال مفسر تایپ کند.در این حالت "دستور"ها همان برنامه‌ها هستند، که اجرای آنها زنجیروار به هم مرتبطند.به زبانی که برای دستور دادن به برنامه‌ای استفاده می‌شود، زبان اسکریپت می‌گویند. بسیاری از زبان‌ها کنار گذاشته شده‌اند، برای رفع نیازهای جدید جایگزین شده‌اند، با برنامه‌های دیگر ترکیب شده‌اند و در نهایت استعمال آنها متوقف شده‌است. با وجود اینکه تلاش‌هایی برای طراحی یک زبان رایانه" کامل" شده‌است که تمام اهداف را تحت پوشش قرار دهد، هیچ یک نتوانستند بطور کلی این جایگاه را پر کنند. نیاز به زبان‌های رایانه‌ای گسترده از گستردگی زمینه‌هایی که زبان‌ها استفاده می‌شوند، ناشی می‌شود:

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

یک سیر رایج در گسترش زبان‌های برنامه نویسی این است که قابلیت حل مسائلی با درجات انتزاعی بالاتری را اضافه کنند. زبان‌های برنامه نویسی اولیه به سخت‌افزار رایانه گره خورده بودند. همانطور که زبان‌های برنامه نویسی جدید گسترش پیدا کرده‌اند، ویژگی‌هایی به برنامه‌ها افزوده شده که به برنامه نویس اجازه دهد که ایده‌هایی که از ترجمه ساده به دستورات سخت‌افزار دورتر هستند نیز استفاده کند. چون برنامه نویس‌ها کمتر به پیچیدگی رایانه محدود شده‌اند، برنامه‌های آنها می‌تواند محاسبات بیشتری با تلاش کمتر از سوی برنامه نویس انجام دهند. این به آنها این امکان را می‌دهد که کارایی بیشتردر واحد زمان داشته باشند. "پردازنده‌های زبان طبیعی" به عنوان راهی برای ازبین بردن نیاز به زبان‌های اختصاصی برنامه نویسی پیشنهاد شده‌اند. هرچند، این هدف دور است و فواید آن قابل بحث است. "ادسگر دیجسترا" موافق بود که استفاده از یک زبان رسمی برای جلوگیری از مقدمه سازی ساختارهای بی معنی واجب است، و زبان برنامه نویسی طبیعی را با عنوان "احمقانه" رد کرد، "آلن پرلیس" نیز مشابها این ایده را رد کرد. مطابق با متدولوژی نامتجانس استفاده شده توسط langpop.com در سال ۲۰۰۸، ۱۲ زبان پرکاربرد عبارتند از: C, C++, C#, Java, JavaScript, Perl, PHP, Python, Ruby, Shell, SQL, and Visual Basic.



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

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

دستور زبان برنامه نویسی معمولاً بوسیله ترکیب عبارات معین(برای ساختار لغوی) و فرم توضیح اعمال(برای ساختار گرامری) تعریف می‌شوند. متن زیر یک گرامر ساده، به زبان lisp است: expression ::= atom | list atom ::= number | symbol number ::= [+-]?['۰'-'۹']+ symbol ::= ['A'-'Za'-'z'].* list ::= '(' expression* ')' این گرامر موارد ذیل را مشخص می‌کند:

یک عبارت یا atom است و یا یک لیست
یک atom یا یک عدد است و یا یک سمبل
یک عدد دنباله ناشکسته‌ای از یک یا تعداد بیشتری اعداد دهدهی است، که یک علامت مثبت و یا منفی می‌تواند پیش از آن بیاید.
یک سمبل حرفی است که بعد از هیچ یا تعدادی کاراکتر (جز فاصله) می‌آید.
یک لیست تعدادی پرانتز است که می‌تواند صفر یا چند عبارت در خود داشته باشد.

"۱۲۳۴۵"، "()"، "(a b c۲۳۲ (۱))" مثال‌هایی هستند از دنباله‌های خوش فرم در این گرامر.

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

به عنوان مثال در زبان طبیعی، ممکن نیست به برخی از جملات درست از لحاظ گرامری، معنای خاصی اطلاق کرد و یا ممکن است جمله نادرست باشد:

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

این قسمت از زبان C از نظر دستوری درست است، اما دستوری را انجام می‌دهد که از نظرمعنایی تعریف نشده است(چون p یک اشاره گر خالی است، عمل p->real,p->im معنای خاصی ندارد.) complex *p = NULL; complex abs_p = sqrt (p->real * p->real + p->im * p->im);

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




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


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

یک زبان نوع گذاری شده‌است اگر مشخصات هر عملیات، نوع داده‌های قابل اجرا توسط آن را با نشان دادن نوع‌هایی که برای آنها قابل اجرا نیست، تعیین کند. برای مثال، "این متن درون گیومه قرار دارد" یک رشته‌است. در غالب زبان‌های برنامه نویسی، تقسیم یک رشته با یک عدد معنایی ندارد. در نتیجه غالب زبان‌های برنامه نویسی مدرن ممکن است اجرای این عملیات را توسط برنامه‌ها رد کنند. در برخی زبان‌ها، عبارات بی معنی ممکن است هنگام ترجمه(compile) پیدا شود(چک کننده نوع ایستا)، و توسط کامپایلر رد شود، در حالی که در سایر برنامه‌ها، هنگام اجرا پیدا شود.(چک کننده نوع دینامیک) که به استثنای در حال اجرا منتج شود(runtime exception). حالت خاص زبان‌های نوع دار زبان‌های تک نوعند. این زبان‌ها غالباً اسکریپتی و یا مارک آپ هستند، مانند rexx وSGML و فقط یک داده گونه دارند—غالباً رشته‌های کاراکتری که هم برای داده‌های عددی و هم برای داده‌های سمبلی کاربرد دارند. در مقابل، یک زبان بدون نوع گذاری، مثل اکثر زبان‌های اسمبلی، این امکان را می‌دهد که هر عملیاتی روی هر داده‌ای انجام شود، که معمولاً دنباله‌ای از بیت‌ها با طول‌های متفاوت در نظر گرفته می‌شوند. زبان‌های سطح بالا که بی نوع هستند شامل زبان‌های ساده رایانه‌ای و برخی از انواع زبان‌های نسل چهارم.

در عمل، در حالیکه تعداد بسیار کمی از دیدگاه نظریه نوع، نوع گذاری شده تلقی می‌شوند(چک کردن یا رد کردن تمام عملیات‌ها)، غالب زبان‌های امروزی درجه‌ای از نوع گذاری را فراهم می‌کنند. بسیاری از زبان‌های تولیدکننده راهی را برای گذشتن یا موقوف کردن سیستم نوع فراهم می‌کنند.



نوع گذاری ایستا و متحرک

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


زبان‌های نوع گذاری شده ایستا می‌توانند با مانیفست نوع گذاری شوند یا با استفاده از نوع استنباط شوند. در حالت اول، برنامه نویس بیشتر صریحاً نوع‌ها را در جایگاه‌های منتنی مشخص می‌نویسد(برای مثال، در تعریف متغیرها). در حالت دوم، کامپایلر نوع عبارات و تعریف‌ها را بر اساس متن استنباط می‌کند. غالب زبان‌های مسیر اصلی(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 در برنامه‌های تعبیه شده و سیستم‌های عامل؛ و بقیه برنامه‌ها معمولاً برای نوشتن انواع دیگر برنامه‌ها کاربرد دارند. روش‌های مختلفی برای سنجش محبوبیت زبان‌ها، هر یک متناسب یا یک ویژگی محوری متفاوت پیشنهاد شده‌است:

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

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

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

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

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