PDA

View Full Version : php یک زبان دینامیک هست، یعنی چه؟



rezvan.haghjoo
شنبه 18 بهمن 1393, 15:30 عصر
سلام

اینی که گفته میشه php یک زبان دینامیک هست، یعنی چی؟

vahidqara
شنبه 18 بهمن 1393, 15:54 عصر
زبان های متعددی برای ایجاد وب سایتهای داینامیک وجود دارد از جمله :

PHP

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

تعامل با کاربران
در برنامه نویسی استاتیک هیچ تعاملی بین کاربران وسایت وجود ندارد اما توسط برنامه نویسی داینامیک کاربران می توانند تعامل بیشتری با سایت داشته باشند به عنوان مثال ثبت نام، درج مطلب در سایت، امکان واریز پول به حسابی خاص

امکان تقسیم برنامه به زیر برنامه ها
از طریق این امکان می توان برنامه ها را به زیر برنامه ها تقسیم کرد و از هر کدام بارها و بارها در هر جای برنامه استفاده کرد

rezvan.haghjoo
شنبه 18 بهمن 1393, 17:01 عصر
متشکر از جوابتون
ولی منظورم سایت دینامیک نبود!
منظورم من ساختار زبان php بود، چند جا توی منابع انگلیسی گفته php بر خلاف زبان هایی مثل java و c، یک زبان دینامیک هست! این یعنی چی؟

Unique
شنبه 18 بهمن 1393, 17:50 عصر
منظورم من ساختار زبان php بود، چند جا توی منابع انگلیسی گفته php بر خلاف زبان هایی مثل java و c، یک زبان دینامیک هست! این یعنی چی؟
من که تا حالا چنین چیزی که شما میگین را ندیدم ! ممکنه یک مترجم به اشتباه چنین ترجمه ای کرد هباشه اما عین لاتینش را بعید میدونم.

PHP یک زبان همه منظوره اما بهینه برای ساخت محتوای وب سمت سرور هست.

hamedarian2009
شنبه 18 بهمن 1393, 17:59 عصر
متشکر از جوابتون
ولی منظورم سایت دینامیک نبود!
منظورم من ساختار زبان php بود، چند جا توی منابع انگلیسی گفته php بر خلاف زبان هایی مثل java و c، یک زبان دینامیک هست! این یعنی چی؟

شاید منظور نویسنده این بوده php یک زبان انعظاف پذیر هست مثلا توی php شما برای هر کاری میتونید چندین روش رو استفاده کنید یا نیازی نیست که به متغیرها نوعش رو بشناسونید ولی توی سی اینجوری نیست و ...

احسان!
شنبه 18 بهمن 1393, 18:13 عصر
سلام
اگه بخوام به طور خلاصه و البته ناقص بگم میشه این که توی یه زبان پویا برخی اجزا مقید نمیشن(برخی ویژگی هاشون زمان کامپایل تعیین نمیشه و زمان اجرا تعیین میشه مثلا.).
مثلا نوع های داده: وقتی توی چیزی مثل C++‎‎‎‎‎ یک متغییر رو تعریف میکنید، مثلا int a; این متغییر فقط میتونه یک عدد صحیح بگیره.زمان کامپایل توسط کامپایلر ویژگیهاش تعیین میشه و دیگه قابل تغییر نیست.)پس ایستا هستش و پویایی ای نداره.فرضا نمیتونه یه رشته رو ذخیره کنه و اگه زمان اجرا سعی کنید یه رشته رو توش ذخیره کنید برنامه احتمالا کرش میکنه.
ولی توی چیزی مثل PHP اینطور نیست و در زمان اجرا، یه متغییر میتونه هر نوعی رو بگیره.و پس از اونه که برخی ویژگیهاش تعیین میشه.
(فکر کنم یه کم گنگ توضیح دادم.)

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

اینجا رو مطالعه کنید احتمالا براتون مفید باشه: http://stackoverflow.com/questions/787239/what-is-a-dynamic-language-and-why-doesnt-c-sharp-qualify

freeman99
یک شنبه 19 بهمن 1393, 11:07 صبح
بر طبق متن مقدس ویکیپدیا (https://en.wikipedia.org/wiki/Dynamic_programming_language)، دوتا چیز داریم :لبخند:

یکی میگن زبان برنامه نویسی دینامیک (Dynamic programming language) و یکی دیگه زبان برنامه نویسی ای که از Dynamic typing استفاده میکنه (Type system اون Dynamic type است).
البته این دو قضیه به هم کاملا بی ربط هم نیستن، و در واقع بیشتر زبانهای Dynamic دارای Dynamic typing هم هستند.


Dynamic programming language is a term used broadly in computer science to describe a class of high-level programming languages that execute at runtime many common behaviors that other languages might perform during compilation, if at all. These behaviors could include extension of the program, by adding new code, by extending objects and definitions, or by modifying the type system, all during program execution. These behaviors can be emulated in nearly any language of sufficient complexity, but dynamic languages provide direct tools to make use of them. Most dynamic languages are dynamically typed, but not all.



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

MMSHFE
یک شنبه 19 بهمن 1393, 11:21 صبح
متشکر از جوابتون
ولی منظورم سایت دینامیک نبود!
منظورم من ساختار زبان php بود، چند جا توی منابع انگلیسی گفته php بر خلاف زبان هایی مثل java و c، یک زبان دینامیک هست! این یعنی چی؟

زبانهای پویا اکثراً به زبانهای اسکریپت نویسی مثل PHP گفته میشه که توی اونها برای تغییر یک برنامه کافیه سورس کد رو اصلاح کنیم و دیگه لازم نیست دوباره کامپایل و تست بشه و فایلهای باینری خروجی رو تغییر بدیم. توی متنی که eshpilen از ویکی پدیا نقل کرده هم همین مسئله گفته شده. درواقع امتیاز اصلی که باعث میشه PHP پویا بشه اینه که درحالی که سایت مورد استفاده کاربران هست، میشه اسکریپتها رو اصلاح کرد و نیازی نیست سیستم قطع، اسکریپتها اصلاح و مجدداً کامپایل و نصب بشن و دوباره سیستم رو راه اندازی کنیم. ضمناً یکی دیگه از ویژگیهای پویایی در PHP اینه که میتونه نوع متغیر رو در حافظه با تغییر نوع مقداری که داخلش گذاشته میشه، اصلاح کنه و نیازی نیست همون اول که حافظه میگیریم برای متغیرها، نوع رو قید کنیم و حتی درصورت قیدکردن هم میتونیم بعداً عوضش کنیم و این مسائل توی زبانهایی مثل C یا Java وجود نداره.

rezakho
یک شنبه 19 بهمن 1393, 12:27 عصر
ویژگی های زبان های پویا، یکیش همین dynamic typing هست و ویژگی مهم دیگه نوع فراخوانی متدها!
در زبان های پویا، متدها زمان اجرا پیاده میشند، نه زمان کامپایل!
یعنی در صورت وجود نداشتن یک متد در زبان هایی مثل php یا python، برنامه هنگام کامپایل (منظور فرایند تفسیر و تحلیل لغوی و دستوری و ... هست، حالا نگید php زبان مفسری هست و ...) خطایی نمیده و اجرا میشه، مگر اینکه به فراخوانی متد برسه و در این صورت هم شما می تونید مشخص کنید که خطا صادر بشه یا اینکه اتفاق دیگه ای بیافته
حتی در این زبان ها میشه بعد از ساخته شدن کلاس ها و اشیا، متد به اونها تزریق کرد، و این امکانات به دلیل پیاده سازی متدها در زمان اجراست.