راه‌نوردی

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





راه‌نوردی با پیاده‌گَردی که نوعی پیاده‌رَوی به قصد گردش و لذت بردن از مناظر در مسیرهای روستایی یا مناطق کوهستانی است تفاوت دارد.

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






عابر پیاده

عابر پیاده به فردی گفته می‌شود که یک مسافت را با پا به صورت پیاده‌روی یا دو طی می‌کند. در بعضی از جوامع افرادی که از وسایل سبک و کم‌سرعتی مانند: اسکیت‌برد، ویلچر، roller skates، scooter و موارد مشابه برای حمل و نقل استفاده می‌کنند نیز جزو عابر پیاده محسوب می‌گردند.

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






گذر

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

از گذرهای معروف تهران که تا امروز نیز نام آنها در بین مردم رواج دارد می توان به این گذرها اشاره نمود:

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




پل

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

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

یکی از عناصر پل‌سازی تیرهای سراسری هستند.





بزرگترین پل ایران

پل شهید کلانتری طولانی‌ترین پل ساخته‌شده در ایران (سه برابر طولانی‌ترین پل پیشین) به طول هزار و هفتصد و نه متر می‌باشد که بر روی دریاچه ارومیه ساخته شده‌است و فاصله میان دو شهر تبریز و ارومیه به 135 کیلومتر تغییر داده‌است. این پل در ۲۷ آبان سال ۱۳۸۷ به بهره‌برداری رسید.





انواع پل‌ها

پل قوسی
پل فلزی
پل بتنی مسطح
پل بازویی
پل کابلی
پل نظامی
پل معلق
پل تشریفاتی
پل سواره‌رو
پل هوایی


پل مسطح

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





پل قوسی

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

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




پل کابلی
تاریخچه پل کابلی‎

با اینکه به نظر می‌رسد پل‌های کابلی به آینده چشم دوخته‌اند، ایده آن‌ها مسیر طولانی را پیموده‌است. اولین طرح شناخته شده از یک پل کابلی در کتابی به نام "ماشین‌های نوواً - منتشر شده در سال ۱۵۹۵ - آورده شده ولی این ایده تا قرن حاضر که مهندسان شروع به استفاده از پل‌های کابلی نمودند؛ مورد استقبال واقع نشده بود. در جنگ جهانی دوم که فولاد کمیاب بود، این طرح برای بازسازی پل‌های بمباران شد که هنوز فوندانسیون هایشان پابرجاست، کامل بود. با اینکه از احداث پل‌های کابلی در آمریکا دیری نمی‌گذرد، واکنش‌ها در این مورد بسیار مثبت بوده‌است.




پل کابلی و نحوه عملکرد آن

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




طبقه‌بندی پل‌های کابلی

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

پلهای کابلی عمدتا به دو بخش ترکه ای و معلق تقسیم بندی می شود.پل های معلق در دهانه های خیلی بزرگ به کار می روندترکیب این پلها عبارت است از دو عددپایه بلند که در دو طرف دهانه قرار دارد و دو دسته کابل که با عبور از بالای پایه ها در دهانه آویزان است و دو انتهای کابل ها در تکیه گاه ثابتی که معمولا بلوک های حجیم بتنی هستند مهار میشود و عرشه توسط تعدادی آویز قائم آویخته می شود.پل های معلق مدرن برای دهانه های بیش از 300متر اقتصادی بوده و اگر عرشه فلزی که سبکتر از نوع بتنی میباشد استفاده شود مقرون به صرفه تر است.پلهای ترکه ای به علت سختی وزیبایی و اقتصاد طرح و سهولت اجرا از سال 1950 میلادی رواج زیادی یافت .اصل اساسی در بررسی رفتار پلهای ترکه ای این است که توسط کابل های متعددی به یک پایه بلند نصب شده اند و دهانه پل در نقاط متعددی گرفته میشود .در این پلها عرشه به صورت صلب از یک طرف روی کوله های پایه ها و از طرف دیگر با کابلها مهار میشوند.پایه های میانی پل به شکل H A I بوده است پلهای ترکه ای با عرشه بتنی تا دهانه های 100ال 700 متر اقتصادی بوده است.ارسال از امید اسداللهی دانشجویی رشته مهندسی راهسازی دانشگاه راه و ترابری.




مزایای و تفاوت‌های پل کابلی

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




مهار کابلی چگونه کار می‌کند؟

بایستید و دستان خود را به صورت افقی در هر طرف دراز کنید. فرض کنید آن‌ها پل هستند و سرتان نیز برجی در وسط آن است. در این موقعیت ماهیچه‌های شما دستانتان را نگاه می‌دارد. سعی کنید یک مهار کابلی برای نگه داشتن دستانتان بسازید. یک تکه طناب به طول حدودی ۱۵۰ سانتیمتر بردارید. از یک دستیار بخواهید هر یک از دو انتهای طناب را به هر یک از آرنج هایتان ببندد. سپس وسط طناب را روی سر خود قرار دهید. اینک طناب مانند یک مهار کابلی عمل می‌کند و آرنج هایتان را بالا نگه می‌دارد. از دستیارتان بخواهید تکه طناب دیگری به طول حدودی ۱۸۰ سانتی متر را این بار به مچهایتان ببندد. طناب دوم را روی سرتا ن قرار دهید. حالا شما صاحب دو مهار کابلی هستید. فشردگی و فشار نیرو را در کجا احساس می‌کنید؟ ببینیدتاتن مهار کابلی چگونه بار پل (دست هایتان) را به برج (سر شما) منتقل می‌کند!




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






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





پل معلق

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

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






سازه فولادی

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

در حال حاضر فولاد از مهمترین مصالح برای ساخت ساختمان و پل و سایر سازه‌های ثابت است مقاومت فولاد (تنش تسلیم) مورد استفاده در بازه۲۴۰۰ تا ۷۰۰۰ kgr/cm ۲ است که برای ساختمانهای معمولی از فولاد با مقاومت ۲۴۰۰ که به آن فولاد نرمه گفته می‌شود استفاده می‌گردد.




نقش فولاد در ساختمان

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




مشخصات مکانیکی فولاد

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

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

آنچه فولاد را به عنوان یک مصالح ساختمانی مناسب معرفی کرده می‌تواند شامل موارد زیر باشد:

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

دسته‌بندی

سازه‌های فولادی به سه دسته تقسیم می‌شوند

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

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

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




طراحی ساختمانهای فولادی

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

برای استفاده بهینه از خواص مطلوب ساختمانهای فولادی، سیستم فضاسازی داخلی باید بگونه‌ای اختیار شود که

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


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




فضاهای داخلی ساختمان فلزی معمولأ شامل:

سقفها

بام

دیوارهای خارجی

دیوارهای داخلی

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



طراحی با توجه به روش مهاربندی

تمام ساختمانها باید برای مقاومت در برابر نیروی زلزله و باد و یا دیگر نیروهای افقی صلب شوند سیستم صلب کننده باید:

نیروهای جانبی را به فونداسیون منتقل کند.

تغییر مکانهای افقی را محدود کند.



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

سرعت باد

شکل آیرودینامیکی ساختمان

وضعیت سطح نما

روشهای صلب کردن



یک قاب سازه‌ای فولادی را می‌توان به یکی از روشهای زیر مهاربندی کرد:

سیستمهای قاب صلب

سیستمهای قاب بادبندی

دیوارهای بتنی بصورت دیوارهای برشی یا هسته‌های بتنی

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




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

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

دال بتنی درجا بر روی قالب مناسب

دال بتنی پیش ساخته

عرشه فولادی با بتن درجا

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




لزوم محافظت در برابر حریق، خوردگی و عایق بندی صوتی

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

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

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





توجیه اقتصادی سازه‌های فولادی

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

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





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




میزان مصرف فولاد در ساختمانهای فلزی

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

تعداد طبقات
بار اعمال شده به طبقات
دهانه‌ها در اطراف ستون
ضخامت سقف
سیستم سازه‌ای (سیستم انتقال بارهای قائم و جانبی)




انتقال بار در سازه‌های فولادی

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

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

ماهیت انتقال بار از طریق تیرها به تکیه گاهها و روش قرارگیری تیرها (تیر ریزی) به عوامل زیر بستگی دارد

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

تعریف ستون فلزی

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




شکل ستون‌ها

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




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

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

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

برنامه‌نویسی کامپیوتر (که اغلب در انگلیسی programming یا coding گفته می‌شود) فرایند نوشتن، اشکال زدایی(debug) و نگهداری کد منبع (source code) برنامه کامپیوتر می‌باشد. این کد منبع با یک زبان برنامه نویسی نوشته شده است. این کد منبع ممکن است تغییر داده شده یک کد قبلی و یا یک کد کاملاً جدید باشد. هدف برنامه نویسی ساختن یک برنامه می‌باشد که یک رفتار خواسته شده را به نمایش بگذارد.






تاریخچه
موضوع دستگاه‌هایی که به دنباله‌ای از دستورالعمل‌های از قبل تعریف شده عمل می‌کند بر می‌گردد به Greek Mythology.

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

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


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



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

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

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





زبان برنامه‌نویسی

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

نسل اول زبان ماشین - زبان صفرو یک
نسل دوم زبانهایی مانند اسمبلی -قابل فهم تر برای انسان
نسل سوم زبانهایی مانند کوبول و پی ال وان و... -دستورات قابل فهم تر برای انسان و نیاز به کمپایلرها
نسل چهارم مثل زبانهای اوراکل و فاکس پرو و اس کیو الها - نزدیک به محاوره‌های انسانی
نسل پنج زبانهایی مانند prolog , ops5 - تمرکز بر حل مسئله و استفاده از الگوریتمهای نوشته شده توسط

برنامه نویس

یک زبان برنامه نویسی یک زبان مصنوعی است که برای بیان محاسباتی که توسط یک ماشین (مخصوصا رایانه) قابل انجام است، طراحی شده‌است.زبان‌های برنامه نویسی برای ایجاد برنامه‌هایی به کار می‌روند که رفتار یک ماشین را مشخص می‌کنند، الگوریتم دقیق را بیان می‌کنند، و یا روشی برای ارتباط انسانند. بسیاری از زبان‌های برنامه نویسی تعدادی قالب از ویژگی‌های نوشته شده دستوری(syntax) و معناشناسی (semantics) دارند، چرا که رایانه‌ها دستورات دقیقاً مشخص نیاز دارند. برخی توسط سند خصوصیات (specification document) تعیین شده‌اند. (برای مثال یک استاندارد ISO)، در حالی که برخی دیگر دارای پیاده سازی غالبی می‌باشند.(مانند Perl) اولین زبان برنامه نویسی به قبل از اختراع رایانه باز می‌گردد، و برای هدایت رفتار ماشین‌هایی مانند دستگاه‌های نساجی اتوماتیک و نوازنده‌های پیانو به کار می‌رفت. هزاران زبان برنامه نویسی خلق شده‌اند، بیشتر در زمینهٔ رایانه، زمینه‌ای که هر ساله بسیاری دیگر ایجاد می‌شوند.


تقسیم‌بندی
زبان‌های برنامه نویسی را می‌توان از چهار دیدگاه متفاوت مورد بررسی قرار داده و تقسیم بندی کرد: الف)روش‌های برنامه نویسی ۱-زیر روالی ۲-ساخت یافته ۳-مدولار ۴-شئ گرا ب)نزدیکی به زبان ماشین ۱-سطح پایین ۲-سطح میانی ۳-سطح بالا ج)نوع ترجمه ۱-مفسری ۲-کامپایلری د)رابط برنامه نویسی ۱-مبتنی بر متن ۲-مبتنی بر گرافیک (ویژوال)



تعاریف

ویژگی‌هایی که غالباً برای تشکیل یک زبان برنامه نویسی مهم شمرده می‌شوند:

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





هدف: زبان‌های برنامه نویسی با زبان‌های طبیعی تفاوت دارند و آن اینکه زبان‌های طبیعی فقط برای فعل و انفعالات بین مردم به کار می‌روند، در حالیکه زبان‌های برنامه نویسی همچنین به انسانها اجازه می‌دهد که از طریق دستورات با ماشین‌ها ارتباط برقرار کنند. برخی زبان‌های برنامه نویسی بوسیله یک دستگاه استفاده می‌شوند تا دستگاه دیگری را کنترل کند. برای مثال برنامه‌های پست اسکریپت(post script) غالباً توسط برنامه دیگری برای کنترل یک چاپگر و یا نمایشگر ایجاد می‌شوند.
ساختارها: زبان‌های برنامه نویسی ممکن است ساختارهایی برای تعریف و تغییر داده ساختارها یا کنترل جریان اجرا داشته باشند.
توان بیانگر: نظریه محاسبات، زبان‌ها را بوسیله محاسباتی که توان بیان آنها را دارند طبقه بندی می‌کند. تمام زبان‌های "کامل تورینگ" می‌توانند مجموعه یکسانی از الگوریتم‌ها را پیاده سازی کنند.ANSI/ISO SQL و Charity مثال‌هایی هستند از زبان‌هایی که کامل تورینگ نیستند، ولی غالباً زبان برنامه نویسی نامیده می‌شوند.

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


کاربرد

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

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

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




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


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

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

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



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

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

نوع گذاری قوی مانع رخ دادن مشکل فوق می‌شود. تلاش برای انجام عملیات روی نوع نادرست متغیر منجر به رخ دادن خطا می‌شود. زبان‌هایی که نوع گذاری قوی دارند غالباً با نام "نوع-امن" و یا امن شناخته می‌شوند. تمام تعاریف جایگزین برای "ضعیف نوع گذاری شده" به زبان‌ها اشاره می‌کند، مثل 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 را نگه دارد، مانند چند برنامه جاوا سکریبت، در قسمتی از کد پرل خود و برای پشتیبانی از چندین زبان برنامه نویسی با تناسب متغیر در "مدرک اینجا" استفاده کند.
ساعت : 7:51 pm | نویسنده : admin | کاکاپو | مطلب قبلی
کاکاپو | next page | next page