پیکسل

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






اگر تابع f زیر را با دو متغیر حقیقی مستقل x و y را در نظر بگیریم،

f(x, y)

که در آن -\infty \le x \le \infty و -\infty \le y \le \infty است، می‌توان با نسبت دادن ارزشی (مثل روشنایی و یا شدت) به f آن را بر روی صفحه‌ای نمایش داد. در این صورت f یک تصویر نامیده می‌شود، و نقطه (x,y) یک پیکسل نامیده می‌شود.






مگاپیکسل

مگاپیکسل (به انگلیسی: Megapixel)، یک میلیون پیکسل است. این عبارت، تنها برای مشخّص‌کردن تعداد پیکسل‌های تصویر به‌کار نمی‌رود؛ بلکه کاربرد دیگر آن، نشان‌دادن شمار عناصر گیرنده تصویر یا تعداد عناصر نمایشی نمایشگرهای دیجیتال است. برای مثال، دوربینی با ابعاد ۲۰۴۸×۱۵۳۶ عنصر حسگر را معمولاً «۳٫۱ مگاپیکسل» (۳،۱۴۵،۷۲۸ = ۱۵۳۶ × ۲۰۴۸) می‌خوانند. از مگاپیکسل اغلب به‌عنوان یکی از مشخّصه‌های بهتربودن یاد می‌شود، به‌همین‌خاطر یکی از ویژگی‌هایی است که کیفیّت دوربین را مشخّص می‌کند.





وضوح تصویری

وضوح تصویری یا قدرت تفکیک پذیری تصویری یا رزولوشن تصویری (به انگلیسی: Image resolution) در علوم تصویری به توانایی یک سیستم برای متمایز سازی جزئیات یک تصویر در یک سیگنال تصویری را گویند.

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

این کمیت من جمله در تصویرگیری تشخیصی و علوم تصویری دیگر کاربرد فراوانی دارد.





عکس

عکس یا فرتور نوعی تصویر است که بر اثر تابش نور بر یک سطح حساس به نور (معمولا فیلم عکاسی یا یک تصویرساز الکترونیکی مانند دستگاه جفت‌کننده بار یا تراشه‌ی سیموس (به انگلیسی: CMOS) به دست می‌آید. بیشتر فرتورها با استفاده از دوربین آنالوگ گرفته می‌شوند. دوربین آنالوگ از لنز برای واضح‌سازی طول موجهای مرئی نور در بازتولیدی که برای چشمان انسان رویت‌پذیر باشد استفاده می‌کند. فرآیند ساخت فرتور را عکاسی می‌گویند. نخستین فرتور در سال ۱۸۲۶ یا ۱۸۲۷ میلادی به‌دست ژوزف نیسه‌فور نیپس ثبت شد





عکاسی

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

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

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

عکاسی دارای سه جنبهٔ علمی، صنعتی و هنری است؛ به‌عنوان یک پدیدهٔ علمی متولد شد، به‌شکل یک صنعت گسترش یافت و به عنوان هنر تثبیت شد. عکاسی توسط یک فرد کشف و تکمیل نشده‌است، بلکه نتیجهٔ تلاش بسیاری از افراد در زمینه‌های مختلف و اکتشافات و نوآوری‌های آنان در طول تاریخ است و سال‌ها قبل از اختراع عکاسی، اساس کار دوربین عکاسی وجود داشته‌است اما اولین تصویر لیتوگرافی نوری در سال ۱۸۲۲ میلادی توسط مخترع فرانسوی، ژوزف نیسه فور نیپس تولید شد و پس از آن توانست عکسی دائمی از طبیعت به نام اصطبل و کبوترخانه را خلق کند. او با همکاری لوئی داگر، آزمایش‌هایی را بر ترکیبات نقره براساس یافته‌های یوهان هاینریش شولتز انجام دادند و داگر در سال ۱۸۳۷ توانست روش داگرئوتایپ را اختراع کند.

تئوری عکس رنگی سه‌رنگ، توسط جیمز کلرک ماکسول در سال ۱۸۵۵ پیشنهاد شده بود. برپایهٔ نظریهٔ او، نور مرئی از سه رنگ اساسی قرمز، سبز و آبی، تشکیل شده‌است. پس فیلمی از سه لایه ساخت که هر لایهٔ آن نسبت به یکی از سه رنگ‌های اولیه حساس بود و توانست نخستین عکس‌رنگی را در سال ۱۸۶۱ به ثبت برساند.

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

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






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

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

ابن هیثم تئوری دوربین سوراخ سوزنی را گسترش داد و در مشاهدات خورشید گرفتگی خود از وسیله‌ای به نام «جعبه تاریک» استفاده کرده بود. او برای نخستین‌بار از دوربین سوراخ سوزنی و دوربین تاریکخانه‌ای در آزمایش‌هایش جهت بررسی خواص نور پرداخت. آلبرتوس ماگنوس در قرن سیزدهم میلادی نیترات نقره و ژرژ فابریسیوس نقره کلرید را کشف کرد. و دانیل باربارو در سال ۱۵۶۸ میلادی نحوهٔ عملکرد دیافراگم و کارکرد عدسی در دوربین تاریکخانه‌ای را شرح داد. ویلهلم هومبرگ در سال ۱۶۹۴ میلادی توضیح داد که نور چگونه برخی از مواد شیمیایی را تاریک می‌کند و در سال ۱۸۰۲ میلادی توماس وجوود انگلیسی توانست بر روی سطح‌های حساس شده با نیترات نقره تصویر شفافی به دست آورد.

اتاق تاریک منجر به تکامل عکاسی و پیدایش دوربین عکاسی شد. اتاق تاریک عبارت از اتاقی بدون پنجره‌است که به جز روزنه‌ای که بر یکی از دیوارهای اتاق تعبیه شده، هیچ نوری به آن وارد نمی‌شود. تصاویر یا چشم‌اندازهای روبه‌روی روزنه به صورت وارونه بر دیوار روبرویش بازتاب می‌یابد که قابل دیدن است. بعضی از نگارگران از تصاویر بازتاب یافته به عنوان الگوی نقاشی استفاده می‌کردند. بعدها این اتاق تاریک در ابعاد کوچک‌تر تبدیل شد به دوربین عکاسی شد یعنی در برابر روزنه‌ای که وجود داشت مادهٔ حساس به نور قرار می‌دادند تا تصاویر بازتابش یافته، ثبت و ضبط شوند.
اولین تصویر لیتوگرافی نوری در سال ۱۸۲۲ میلادی توسط مخترع فرانسوی، ژوزف نیسه فور نیپس تولید شد اما در هنگام رونوشت‌برداری از بین رفت. اما نیپس در سال ۱۸۲۶ دوباره توانست عکسی دائمی از طبیعت به نام اصطبل و کبوترخانه را خلق کند. ولی زمان نوردهی این عکس هشت ساعت بود که زمان بسیار درازی است، و مشکل دیگر هم این بود که تصویر نگاتیو بود یعنی هرچه سفید بود را سیاه هرچه سیاه بود را سفید نشان می‌داد. به همین دلیل او به دنبال یافتن فرآیند بهتری بود و با همکاری لوئی داگر، آزمایش‌هایی را بر ترکیبات نقره براساس یافته‌های یوهان هاینریش شولتز در سال ۱۸۱۶ میلادی انجام دادند؛ در آن سال شولتز مشاهده کرد که مخلوطی از نیترات نقره و گچ در مقابل نور، تیره می‌شوند.نیپس در سال ۱۸۳۳ میلادی درگذشت؛ ولی داگر در سال ۱۸۳۷ توانست روش داگرئوتایپ را اختراع کند. داگرئوتایپ بدین‌گونه بود که به صفحه‌ای نقره‌ای مدتی بخار ید داده تا نسبت به نور حساس شود، سپس آن را درون یک دوربین جعبه‌ای گذاشته و با برداشتن عدسی حدود ۱۵ تا ۳۰ دقیقه نور از شی موردنظر به صفحهٔ نقره‌ای تابانده می‌شد. برای ظهور تصویر، صفحه را در محلول جیوه با حرارت ۶۵ درجه قرار می‌داد تا با چسبیدن ذرات نقره و جیوه، عکس بوجود آید؛ سپس صفحه را در آب سرد فرو می‌برد تا سطح آن پایدار گردد، در نهایت صفحه را در آب‌نمک (سدیم کلرید) قرار می‌داد و تصویر ظاهر می‌شد. یکی از مشکلات روش داگرئوتایپ این بود که فقط می‌شد یک نسخهٔ پوزیتیو یا مثبت (عکس دائمی) از سوژه ثبت کرد.در سال ۱۸۳۵ میلادی، چند ماه پس از اینکه نتیجهٔ آزمایش‌های لوئی داگر اعلام شد، شیمی‌دان انگلیسی، هنری فاکس تالبوت گزارشی از روند عکاسی خود که آن را «طراحی نوری» نامیده بود منتشر کرد؛ تالبوت این روش را در سال ۱۸۳۵ میلادی ابداع کرده بود اما آن را مخفی نگه داشت و روش خود را کامل و در سال ۱۸۴۰ با عنوان کالوتایپ معرفی کرد. در این روش، به‌جای استفاده از صفحات فلزی، از کاغذ حساس‌شده به نیترات نقره با ترکیبی از سدیم کلرید و اسید گالیک استفاده کرد. کاغذ حساس‌شده به مدت دو دقیقه نوردهی می‌شد و پس از آن یک تصویر پنهان بوجود می‌آمد که آن‌را با استفاده از پتاسیم یدید و سدیم سولفات به صورت نگاتیو (منفی) در اندازه‌های کوچکتر ثبت می‌کرد. سپس با استفاده از آن می‌شد نسخه‌های دائمی فراوانی در اندازه‌های مختلف تهیه کرد؛ تا پیش از این عکاسان مجبور بودند صفحهٔ حساس را به اندازهٔ شی موردنظر بسازند و امکان تغییر در اندازه وجود نداشت. تا سال ۱۸۶۰ میلادی روش داگرئوتایپ به کلی منسوخ شد و عکاسی مبتنی بر نسخه‌های نگاتیو و پوزیتیو جایگزین آن شد. در سال ۱۸۳۹ جان هرشل با استفاده از سدیم تیو سولفات روشی را برای تهیهٔ نسخهٔ نگاتیو روی شیشه ابداع کرد که به‌مرور جایگزین نگاتیوهای کاغذی شد.

تئوری عکس رنگی سه‌رنگ، توسط جیمز کلرک ماکسول فیزیکدان انگلیسی در سال ۱۸۵۵ پیشنهاد شده بود. برپایهٔ نظریهٔ او، نور مرئی از سه رنگ اساسی قرمز، سبز و آبی، تشکیل شده‌است. پس فیلمی از سه لایه ساخت که هر لایهٔ آن نسبت به یکی از سه رنگ‌های اولیه حساس بود و توانست نخستین عکس‌رنگی را در سال ۱8۶۱ به ثبت برساند.

بالاخره در سال ۱۸۷۴، یک شرکت انگلیسی اولین شیشه‌های خشک عکاسی را به بازار عرضه کرد و عکاسی جنبهٔ عملی به خود گرفت. اما حمل و نقل مقدار زیادی شیشه، از لحاظ سنگینی و شکنندگی، یکی از مشکلات پیش روی بود تا اینکه در سال ۱۸۷۱ ریچارد مادوکس، فیزیکدان و عکاس انگلیسی با ابداع فیلم عکاسی ژلاتینی، زمان عکسبرداری را کوتاه کرد و جابه‌جایی فیلم‌های عکاسی را راحت نمود که نقطهٔ عطفی در تاریخ عکاسی محسوب می‌شو

جورج ایستمن آمریکایی در سال ۱۸۸۴ میلادی فیلم رول را که فیلمی از جنس پلاستیک آغشته به امولسیون ژلاتینی است را ابداع کرد و با ساخت دوربین جعبه‌ای در سال ۱۸۸۸، عکاسی را برای مردم عادی مقرون به صرفه نمود و تحول مهمی در عکاسی ایجاد کرد؛ شعار تبلیغاتی کمپانی کداک برای دوربین‌هایش چنین بود که «شما دکمه را فشار دهید، بقیه‌اش را ما انجام می‌دهیم.»

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

پیدایش عکاسی و رواج روش‌های گوناگون این فن در ایران، با اختلاف حدود سه سال از اعلام موجودیت عکاسی در فرانسه روی داده‌است. اختراعات و انواع ابزار و تجهیزات عکاسی دو تا سه سال پس از اینکه به بازار می‌آمد بطور هدیه بدست پادشاه ایران می‌رسید. نخستین دستگاه‌های عکاسی به روش داگرئوتایپ، به درخواست محمد شاه قاجار از کشورهای روسیه و انگلیس به دربارِ ایران وارد شد و در اواسط دسامبر سال ۱۸۴۲ میلادی (پایان آذر سال ۱۲۲۱ خورشیدی) نخستین عکسبرداری در ایران انجام گرفت.






عکاسی آنالوگ

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

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

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







ظهور فیلم سیاه و سفید

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







ظهور فیلم رنگی

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

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

استفاده همه‌گیر فیلم‌های ریورسال موجب بوجود آمدن داروی واحدی به نام ئی-۶ گردید. فعلاً تقریباً تمامی فیلم‌های ریورسال رنگی با این دارو قابل ظهور هستند.






عکاسی دیجیتال

عکاسی دیجیتال به فرآیند ثبت تصاویر به وسیلهٔ دریافت و ثبت نور برروی سطح حساس به نور سنسور الکترونیکی گفته می‌شود. الگوهای نوری بازتابیده شده یا ساطع شده از اشیاء بر روی سطح حساس به نور سنسور تأثیر می‌گذارد و باعث ثبت تصاویر می‌گردد.

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

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

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

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







هیستوگرام

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

توجه به هیستوگرام، راه بسیار خوبی برای کنترل نوردهی دوربین و تصویر بوجود آمده‌است.

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






تجهیزات عکاسی

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






دوربین آنالوگ

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

مسدود کننده‌های سطح کانونی هم با وجود سرعت بالا، در ثبت تصویر از سوژه‌های متحرک، بسته به جهت حرکت پره‌ها (افقی یا عمودی) تصویر را دچار اعوجاج می‌کردند. با ورود عکاسی به جامعه و دنیای خبر و ورزش، طلب برای سرعت‌های بالای مسدود کننده، برای ثبت وقایع سریع افزایش یافت. سرانجام کارخانه مینولتا در سال ۱۹۹۸ دوربین ماکسیوم ۹ خود را با سرعت مسدود کننده ۱/۱۲۰۰۰ ثانیه به جهان معرفی کرد، که خود انقلابی در این زمینه محسوب می‌شود.






فیلم

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

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






دوربین دیجیتال

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

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

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






لنز

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

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






مبدل‌ها

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






فلاش

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

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

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






فیلتر

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

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






پایه‌ها

سه‌پایه

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







تک پایه

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






اصطلاحات فنی

عمق میدان

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







تعادل سفیدی

تعادل رنگ سفید (به انگلیسی: White Balance) یا تعادل رنگ عبارت است از به روند اصلاح رنگ‌ها که در این روند تن رنگ سفید که ممکن است تمایل به برخی رنگ‌های دیگر داشته‌باشد تبدیل به سفیدِ کامل می‌شود و سایر رنگ‌ها نیز به تناظر آن، اصلاح می‌شوند.






نوردهی

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







فوکوس

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

فاصله کانونی، به فاصلهٔ مرکز اپتیکی لنز و مرکز کانونی آن گفته می‌شود. این فاصله معمولا برابر با فاصله فاصله مرکز اپتیکی و سنسور است و تغییر فاصله کانونی باعث افزایش و یا کاهش بزرگنمایی می‌شود. هنگام افزایش بزرگنمایی روی یک شی، فاصله کانونی عوض می‌شود و هر چه سوژه دورتر باشد فاصلهٔ کانونی بیشتر می‌شود. در شرایط یکسان عکسی که با فاصله کانونی کمتر گرفته شده باشد، کیفیت بهتری دارد.







سرعت فیلم

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







زاویه دید

زاویهٔ دید، زاویه‌ای است که لنز می‌تواند صحنهٔ روبه‌روی خود را ببیند؛ اگر خطی فرضی از لنز به دو انتهای منظره‌ای که دیده می‌شود ترسیم کنیم، زاویهٔ بین این دوخط، زاویهٔ دید خواهد بود. زاویهٔ دید را فاصلهٔ کانونی مشخص می‌کند و هرچه فاصلهٔ کانونی بیشتر شود، زاویهٔ دید کوچک‌تر و هرچه فاصلهٔ کانونی کمتر بشود، زاویهٔ دید بزرگ‌تر می‌شود.
11:08 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 در برنامه‌های تعبیه شده و سیستم‌های عامل؛ و بقیه برنامه‌ها معمولاً برای نوشتن انواع دیگر برنامه‌ها کاربرد دارند. روش‌های مختلفی برای سنجش محبوبیت زبان‌ها، هر یک متناسب یا یک ویژگی محوری متفاوت پیشنهاد شده‌است:

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

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

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

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

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