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

۲ مطلب با موضوع «هفته‌ی پنجم» ثبت شده است

نحوه ی اضافه کردن به صفحات وب


 باید در تگ Script آن اضافه کرد.

< html >

< head >

< title >vbscript example< /title >

< script language=”vbscript” >

Msgbox “Welcome to the world of VB Script”

< /script >

< /head >

< body >

< /body >

< /html >



حلقه ها


For ... Next Loop
این حلقه مثل for  در تمام زبان ها برای انجام یک سری عملیات به تعداد دفعات مشخص استفاده می شود.next در آخر آن برای اضافه شدن شرط حلقه می باشد.
.
<html>
<body>

<script type="text/vbscript">
For i = 0 To 5
  document.write("The number is " & i & "<br />")
Next
</script>

</body>
</html>


 در این حلقه می توان از step  هم برای مشخص کردن گام های حلقه استفاده کرد و همچنین میتوان از keyword  exit برای خروج از حلقه در شرایط خاص استفاده کرد.

For i=1 To 10
  If i=5 Then Exit For
  some code
Next

For Each Next Loop
این حلقه عملیاتی را بر روی اعضای یک مجموعه انجام می دهد.

<html>
<body>

<script type="text/vbscript">
Dim cars(2)
cars(0)="Volvo"
cars(1)="Saab"
cars(2)="BMW"

For Each x In cars
  document.write(x & "<br />")
Next
</script>

</body>
</html>
Do ...Loop
 
در این زبان  حلقه ها یی که تعداد انجام آنها مشخص نمی باشد را پشتیبانی می کند از جمله while-do until
که به علت تشابه آن با بقیه زبان ها از مثال هایی برای آن ها ذکر نشده است.

Keywords

 1-Empty این keyword برای نشان دادن این است که متغییر ی مقدار دهی نشده است . که با null متفاوت است.

2-isEmpty  برای تست کردن اینکه یک متغیر مقدار داده شده است یا نه.

3-Noting برای نشان دادن اینکه value  های یک object مقدار دهی نشده است و منابع را می توان آزاد کرد به این ترتیب.

4-null برای نشان دادن اینکه یک متغیر مقدار درستی دریافت نکرده است .



متغیر ها

 
در زبان VBScript  برای تعریف متغیر ها از Dim  استفاده می شود و نوع متغیر هم در تعریف مشخص می شود و برای استفاده از یک متغیر ابتدا باید آن را تعریف کرد چون تعریف نکردن آن باعث به وجود آمدن error  می شود یک دستور Option Explicit وجود دارد که با آوردن آن در ابتای کد اگر متغیری تعریف نشده باشد اجازه استفاده از آن را نمی دهد که  با این کار اصل  Defense in Depth پیروی کرده است.همچنین می توان از public  و  private  هم برای تعریف متغیر ها استفاده کرد.


Dim x
Dim x,y
Private x,y
Public x,y,z 

در VBScript  پارسر برای هر متغیر subtype  در نظر می گیرد که در واقع نوع متغیر می باشد مثلا اگر متغیری  را با  عدد   45 مقدار دهی کنیم TypeName  به عنوان خروجی Integer  را میدهد و اگر با string مقدار دهی شده باشد به عنوان خروجی String  بر می گرداند . برای اینکه ببینیم یک متغیر از چه نوعی می باشد از تابع با فرمت  زیر استفاده می شود. برای مقایسه ی متغیر ها ابتدا باید نوع آنها را چک کنیم.

IsXxx(expression)
  به طور مثال برای بررسی اینکه متغییر عددی است یا نه از تابع زیر استفاده می شود.

IsNumeric(expression)
  همچنین تابع دیگری وجود دارد به نام varType که به هر نوع متغیر یک ID نسبت می دهد  از این تابع در مواردی استفاده می شود که کار با اعداد راحت تر باشد.


۴ نظر موافقین ۰ مخالفین ۰ ۰۶ دی ۹۱ ، ۱۶:۱۴
فهیمه هاجری

در این‌جا می‌خواهیم کارایی زبان‌های اسکریپتی را مقایسه کنیم. در این مقایسه، زبان‌های مطرح اسکریپتی را با زبان‌های غیر اسکریپتی مانند ++C مقایسه می‌کنیم. این مقایسه‌ها روی یک الگوریتم روی زبان‌های متفاوت روی یک کامپیوتر Intel® Q6600® quad-core 


 با ورودی یکسان اجرا شده است. بناربراین تنها وجه تمایز، زبان پیاده‌سازی است. (طبیعتا اگر غیر از این بود مقایسه از اعتبار ساقط می‌شد.) سیستم عامل این کامپیوتر نیز اوبونتوی x64 است. 
 
اولین الگوریتمی که بررسی می‌کنیم، مربوط است به تحلیل اجسام آسمانی هنگامی که در حال حرکت‌اند. در این تست، همان طور که انتظار می رود ++C سریعتر از بقیه است. در جدول زیر می‌توانیم زبان‌های مهم مورد بحث را ببینیم. در این تست، عملیات اعشاری به کار رفته است.
 
زبان زمان اجرا(ثانیه) حافظه(کیلو بایت) طول کد(بایت) توزیع روی پردازنده‌ها
++C ۱۰.۷۹ ۸۲۴ ۱۷۴۹ ۰٪      ۰٪      ۰٪      ۱۰۰٪
Java ۲۲.۴۹ ۱۷۲۶۰ ۱۴۲۴ ۰٪      ۰٪      ۱۰۰٪   ۰٪
Racket ۵۵.۸۳ ۲۶۵۲۸ ۱۶۸۹ ۰٪      ۰٪      ۰٪      ۱۰۰٪
PHP ۱۱ دقیقه ۳۲۴۸ ‍۱۰۸۲ ۰٪      ۰٪      ۱۰۰٪   ۰٪
Python ۱۶ دقیقه ۶۲۴۸ ۱۱۸۱ ۰٪      ۲۴٪     ۴۶٪    ۳۰٪
Perl ۱۶ دقیقه ۲۶۹۲ ۱۴۰۱ ۰٪      ۰٪      ۱۰۰٪   ۰٪
Ruby ۲۴ دقیقه ۴۸۹۲ ۱۱۳۷ ۰٪      ۰٪      ۰٪      ۱۰۰٪
 
در این جا یک الگوریتم محاسباتی سنگین را می‌بینیم که همان طور که انتظار می‌رود ++C و Java به ترتیب در آن اول و دوم هستند. البته از نظر حافظه، می‌دانیم که جاوا بسیار اسراف کار است که در این جدول نیز مشخص است.

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

زبان زمان اجرا(ثانیه) حافظه(کیلو بایت) طول کد(بایت) توزیع روی پردازنده‌ها
++C ۲.۳۰ ۱۶۴۴ ۶۸۲ ۰٪      ۰٪      ۰٪      ۱۰۰٪
Java ۴.۴۸ ۶۴۸۱۲ ۱۸۲۶ ۷۳٪    ۴۳٪    ۴۰٪   ۷۳٪
Racket  ۲.۳۶ ۲۴۰۸۸ ۱۱۲۲ ۰٪      ۰٪      ۱٪      ۱۰۰٪
PHP ۳.۵۹ ۴۶۶۸ ‍۵۳۷ ۰٪      ۰٪      ۱٪     ۱۰۰٪
Python  ۲.۴۴ ۷۰۲۸ ۲۵۵ ۰٪      ۰٪      ۱۰۰٪    ۱٪
Perl ۴.۴۷ ۴۰۱۲ ۲۶۱ ۰٪      ۰٪      ۵٪     ۹۵٪
Ruby ۸.۹۲ ۱۲۷۰۴ ۲۴۲ ۰٪      ۰٪      ۱۰۰٪    ۰٪

در این تست نیز مشاهده می‌شود که Java و Racket بیشترین حافظه را مصرف می‌کنند. تنها نکته‌ی شگفت‌انگیزی که وجود دارد پیشی گرفتن PHP از Java است در این تست!

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

زبان زمان اجرا(ثانیه) حافظه(کیلو بایت) طول کد(بایت) توزیع روی پردازنده‌ها
++C ۲۵۹.۹۱ ۴۶۰۴ ۵۸۸ ۳۰٪     ۳۰٪     ۶٪      ۶٪
Java ۶ دقیقه ۲۸۹۵۰۰ ۵۳۰ ۴۴٪    ۲٪     ۲٪    ۴۴٪
Racket ۱۷۵.۴۶ ۶۷۰۴۸ ۲۶۲ ۰٪      ۰٪      ۱۰۰٪    ۰٪
PHP --- --- ‍--- ---
Python ۶ دقیقه ۱۰۳۷۶ ۲۸۸ ۴۹٪     ۱٪      ۱٪      ۴۹٪
Perl ۹ دقیقه ۷۰۲۳۶۰ ۴۸۹ ۲۸٪      ۲۸٪     ۲۷٪    ۲۷٪
Ruby ۱۹ دقیقه ۱۷۲۳۶ ۲۱۵ ۵۸٪     ۶٪      ۱۱٪     ۵۸٪

نکته‌ی جالب این است که Racket عملا برنامه را به صورت موازی اجرا نمی‌کند!

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


زبان زمان اجرا(ثانیه) حافظه(کیلو بایت) طول کد(بایت) توزیع روی پردازنده‌ها
++C ۴.۱۱ ۱۶۳۹۵۶ ۶۹۵ ۳۶٪     ۷۶٪     ۲۳٪     ۲٪
Java ۶.۳۹ ۶۲۱۷۱۲ ۱۴۱۰ ۸۷٪    ۸۷٪    ۸۶٪   ۹۶٪
Racket ۴۰.۵۰ ۶۴۰۲۴۰ ۵۲۷ ۰٪      ۰٪      ۱۰۰٪      ۰٪
PHP ۲۶.۷۳ ۲۲۳۹۹۲ ‍۴۵۹ ۰٪      ۰٪      ۱۰۰٪   ۰٪
Python ۱۲.۸۸ ۲۵۵۷۲۴ ۴۷۸ ۴۱٪     ۳۳٪     ۹۹٪   ۳۲٪
Perl ۱۰.۴۰ ۱۳۹۶۷۶ ۵۲۷ ۶۹٪     ۷۱٪     ۷۱٪    ۹۰٪
Ruby ۱۳.۹۹ ۲۷۹۰۹۲ ۵۰۱ ۴۱٪     ۴۰٪     ۴۱٪   ۱۰۰٪


همان طور که دیده می‌شود Perl با وجود این که یک زبان اسکریپتی است در این حوزه در حدود جاوا کارایی دارد.


منابع:
۰ نظر موافقین ۰ مخالفین ۰ ۰۴ آذر ۹۱ ، ۲۳:۱۵
نیما حمیدی