loading...

برنامه نویسی php

بازدید : 27
چهارشنبه 2 خرداد 1403 زمان : 21:47

زبان mming را می توان به طور کامل توصیف برنامه نویسی بلوکی و مطالعه کرد زیرا دارای تعریف دقیق و متناهی است.[89] در مقابل، زبان‌های طبیعی معانی متغیری دارند که توسط کاربرانشان در جوامع مختلف داده می‌شود. در حالی که زبان های ساخته شده نیز زبان های مصنوعی هستند که از ابتدا با هدف خاصی طراحی شده اند، اما فاقد تعریف معنایی دقیق و کاملی هستند که یک زبان برنامه نویسی دارد.

بسیاری از زبان های برنامه نویسی از ابتدا طراحی برنامه نویسی بلوکی شده اند، برای رفع نیازهای جدید تغییر یافته اند و با زبان های دیگر ترکیب شده اند. بسیاری از آنها در نهایت از کار افتاده اند. اگرچه تلاش‌هایی برای طراحی یک زبان برنامه‌نویسی «جهان‌شمول» که همه اهداف را برآورده می‌کند، انجام شده است، اما همه آن‌ها به‌عنوان این نقش پذیرفته نشده‌اند.[90] نیاز به زبان های برنامه نویسی متنوع از تنوع زمینه هایی که در آن زبان ها استفاده می شود ناشی می شود:

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

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

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

برنامه ها ممکن است یک بار نوشته شوند و برای نسل ها تغییر برنامه نویسی بلوکی نکنند، یا ممکن است به طور مداوم تغییر کنند.

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

یکی از روندهای رایج در توسعه زبان های برنامه نویسی، افزودن توانایی بیشتر برای حل مسائل با استفاده از سطح بالاتر انتزاع بوده است. اولین زبان های برنامه نویسی بسیار نزدیک به سخت افزار زیرین رایانه گره خورده بودند. با توسعه زبان‌های برنامه‌نویسی جدید، ویژگی‌هایی اضافه شده‌اند که به برنامه‌نویسان اجازه می‌دهد برنامه نویسی بلوکی ایده‌هایی را بیان کنند که از ترجمه ساده به دستورالعمل‌های سخت‌افزاری دورتر هستند. از آنجایی که برنامه نویسان کمتر به پیچیدگی کامپیوتر وابسته هستند، برنامه های آنها می توانند محاسبات بیشتری را با تلاش کمتر برنامه نویس انجام دهند. این به آنها امکان می‌دهد عملکردهای بیشتری را در واحد زمان بنویسند.[91]

برنامه نویسی با زبان طبیعی به عنوان راهی برای رفع نیاز به زبان تخصصی برای برنامه نویسی پیشنهاد شده است. با این حال، این هدف بسیار دور است و مزایای آن قابل بحث است. Edsger W. Dijkstra این موضع را گرفت که استفاده از یک زبان رسمی برای جلوگیری از معرفی ساختارهای بی معنی ضروری است و برنامه‌نویسی به زبان طبیعی را "احمقانه" رد کرد.[92] آلن پرلیس نیز به همین ترتیب این ایده را رد کرد.[93] رویکردهای ترکیبی به زبان انگلیسی ساختاریافته و SQL اتخاذ شده است.

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

مشخصات

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

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

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

تعریفی صریح از نحو، معنای ایستا و معنایی اجرایی زبان. در حالی که نحو معمولاً با استفاده از گرامر رسمی مشخص می شود، تعاریف معنایی ممکن است به زبان طبیعی (مثلاً مانند زبان C) یا یک معنای رسمی (مثلاً مانند مشخصات استاندارد ML[94] و Scheme[95]) نوشته شود.

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

یک مرجع یا پیاده سازی مدل، که گاهی اوقات به زبان آموزش برنامه نویسی کودکان و نوجوانان مشخص شده نوشته می شود (به عنوان مثال، Prolog یا ANSI REXX[96]). نحو و معنای زبان در رفتار پیاده سازی مرجع صریح است.

پیاده سازی

مقاله اصلی: پیاده سازی زبان برنامه نویسی

پیاده سازی یک زبان برنامه نویسی تبدیل یک برنامه به کد ماشینی است که می تواند توسط سخت افزار اجرا شود. سپس کد ماشین را می توان با کمک سیستم عامل اجرا کرد.[97] رایج ترین شکل تفسیر در کد تولید توسط یک کامپایلر است که کد منبع را از طریق یک زبان سطح متوسط به کد ماشین که به عنوان اجرایی شناخته می شود ترجمه می کند. هنگامی که برنامه کامپایل شد، سریعتر از سایر روشهای پیاده سازی اجرا می شود.[98] برخی از کامپایلرها می‌توانند بهینه‌سازی بیشتری برای کاهش استفاده از حافظه یا محاسبات در هنگام اجرا شدن فایل اجرایی، اما افزایش زمان کامپایل ارائه کنند.[99]

روش دیگر پیاده سازی اجرای برنامه با یک مفسر است که هر خط از نرم افزار را درست قبل از اجرا به کد ماشین ترجمه می کند. اگرچه می تواند اشکال زدایی را آسان تر کند، Block programming اما نقطه ضعف تفسیر این است که 10 تا 100 تن را اجرا می کند.

زبان mming را می توان به طور کامل توصیف برنامه نویسی بلوکی و مطالعه کرد زیرا دارای تعریف دقیق و متناهی است.[89] در مقابل، زبان‌های طبیعی معانی متغیری دارند که توسط کاربرانشان در جوامع مختلف داده می‌شود. در حالی که زبان های ساخته شده نیز زبان های مصنوعی هستند که از ابتدا با هدف خاصی طراحی شده اند، اما فاقد تعریف معنایی دقیق و کاملی هستند که یک زبان برنامه نویسی دارد.

بسیاری از زبان های برنامه نویسی از ابتدا طراحی برنامه نویسی بلوکی شده اند، برای رفع نیازهای جدید تغییر یافته اند و با زبان های دیگر ترکیب شده اند. بسیاری از آنها در نهایت از کار افتاده اند. اگرچه تلاش‌هایی برای طراحی یک زبان برنامه‌نویسی «جهان‌شمول» که همه اهداف را برآورده می‌کند، انجام شده است، اما همه آن‌ها به‌عنوان این نقش پذیرفته نشده‌اند.[90] نیاز به زبان های برنامه نویسی متنوع از تنوع زمینه هایی که در آن زبان ها استفاده می شود ناشی می شود:

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

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

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

برنامه ها ممکن است یک بار نوشته شوند و برای نسل ها تغییر برنامه نویسی بلوکی نکنند، یا ممکن است به طور مداوم تغییر کنند.

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

یکی از روندهای رایج در توسعه زبان های برنامه نویسی، افزودن توانایی بیشتر برای حل مسائل با استفاده از سطح بالاتر انتزاع بوده است. اولین زبان های برنامه نویسی بسیار نزدیک به سخت افزار زیرین رایانه گره خورده بودند. با توسعه زبان‌های برنامه‌نویسی جدید، ویژگی‌هایی اضافه شده‌اند که به برنامه‌نویسان اجازه می‌دهد برنامه نویسی بلوکی ایده‌هایی را بیان کنند که از ترجمه ساده به دستورالعمل‌های سخت‌افزاری دورتر هستند. از آنجایی که برنامه نویسان کمتر به پیچیدگی کامپیوتر وابسته هستند، برنامه های آنها می توانند محاسبات بیشتری را با تلاش کمتر برنامه نویس انجام دهند. این به آنها امکان می‌دهد عملکردهای بیشتری را در واحد زمان بنویسند.[91]

برنامه نویسی با زبان طبیعی به عنوان راهی برای رفع نیاز به زبان تخصصی برای برنامه نویسی پیشنهاد شده است. با این حال، این هدف بسیار دور است و مزایای آن قابل بحث است. Edsger W. Dijkstra این موضع را گرفت که استفاده از یک زبان رسمی برای جلوگیری از معرفی ساختارهای بی معنی ضروری است و برنامه‌نویسی به زبان طبیعی را "احمقانه" رد کرد.[92] آلن پرلیس نیز به همین ترتیب این ایده را رد کرد.[93] رویکردهای ترکیبی به زبان انگلیسی ساختاریافته و SQL اتخاذ شده است.

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

مشخصات

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

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

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

تعریفی صریح از نحو، معنای ایستا و معنایی اجرایی زبان. در حالی که نحو معمولاً با استفاده از گرامر رسمی مشخص می شود، تعاریف معنایی ممکن است به زبان طبیعی (مثلاً مانند زبان C) یا یک معنای رسمی (مثلاً مانند مشخصات استاندارد ML[94] و Scheme[95]) نوشته شود.

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

یک مرجع یا پیاده سازی مدل، که گاهی اوقات به زبان آموزش برنامه نویسی کودکان و نوجوانان مشخص شده نوشته می شود (به عنوان مثال، Prolog یا ANSI REXX[96]). نحو و معنای زبان در رفتار پیاده سازی مرجع صریح است.

پیاده سازی

مقاله اصلی: پیاده سازی زبان برنامه نویسی

پیاده سازی یک زبان برنامه نویسی تبدیل یک برنامه به کد ماشینی است که می تواند توسط سخت افزار اجرا شود. سپس کد ماشین را می توان با کمک سیستم عامل اجرا کرد.[97] رایج ترین شکل تفسیر در کد تولید توسط یک کامپایلر است که کد منبع را از طریق یک زبان سطح متوسط به کد ماشین که به عنوان اجرایی شناخته می شود ترجمه می کند. هنگامی که برنامه کامپایل شد، سریعتر از سایر روشهای پیاده سازی اجرا می شود.[98] برخی از کامپایلرها می‌توانند بهینه‌سازی بیشتری برای کاهش استفاده از حافظه یا محاسبات در هنگام اجرا شدن فایل اجرایی، اما افزایش زمان کامپایل ارائه کنند.[99]

روش دیگر پیاده سازی اجرای برنامه با یک مفسر است که هر خط از نرم افزار را درست قبل از اجرا به کد ماشین ترجمه می کند. اگرچه می تواند اشکال زدایی را آسان تر کند، Block programming اما نقطه ضعف تفسیر این است که 10 تا 100 تن را اجرا می کند.

نظرات این مطلب

تعداد صفحات : 0

درباره ما
موضوعات
آمار سایت
  • کل مطالب : 160
  • کل نظرات : 0
  • افراد آنلاین : 3
  • تعداد اعضا : 0
  • بازدید امروز : 43
  • بازدید کننده امروز : 1
  • باردید دیروز : 12
  • بازدید کننده دیروز : 0
  • گوگل امروز : 0
  • گوگل دیروز : 0
  • بازدید هفته : 118
  • بازدید ماه : 118
  • بازدید سال : 4171
  • بازدید کلی : 8104
  • <
    پیوندهای روزانه
    اطلاعات کاربری
    نام کاربری :
    رمز عبور :
  • فراموشی رمز عبور؟
  • خبر نامه


    معرفی وبلاگ به یک دوست


    ایمیل شما :

    ایمیل دوست شما :



    کدهای اختصاصی