بخشی از پاورپوینت

اسلاید 1 :

بسم الله الرحمن الرحیم

موضوع بحث :
بررسی اجمالی خصوصیات ، تاریخچه و قواعد syntax زبان برنامه نویسی Groovy

اسلاید 2 :

مقدمه

Groovy یک زبان برنامه نویسی شی گرا برای پلتفرم جاوا می باشد که در دسته زبان های برنامه نویسی پویا مثل Python , Ruby ,Perl و Smalltalk قرار می گیرد

این زبان از ویژگی های جاوا بهرمند است همچنین به Library های جاوا دسترسی دارد و می تواند به عنوان مفسر یا کامپایلر استفاده شود

Syntax این زبان براکت بیس می باشد ( یعنی برای جدا کردن بخش های مختلف از هم از { } استفاده می کند)
پلتفرم بیانگر موتور اجرایی جاوا ( که با نام ماشین مجازی جاوا معرفی می گردد) است. همچنین بیانگر مترجمی با مجموعه ای از کتابخانه هاست که قابلیت اجرایی فارغ از سخت افزار و سیستم عامل های مختلف، را داراست .

اسلاید 3 :

تاریخچه

ایده اولیه پیاده سازی Groovy برای اولین بار توسط جیمز استراچان در آگوست 2003 مطرح شد و از سال 2004 تا 2006 ورژن های مختلفی از این

زبان ارائه شد اما پس از استاندارد سازی JCP (Java Community Process) نسخه ای به نام 1.0 از این زبان در دوم ژانویه 2007 عرضه گردید

Groovy در اولین سال ارائه توانست جایزه JAX 2007 innovation award را از آن خود کند و در سال 2008 Grails که Framework برنامه نویسی

وب Groovy می باشد توانست JAX 2008 innovation award را کسب نماید

اسلاید 4 :

محیط های توسعه
Eclipse
IntelliJ
TextMate

اسلاید 5 :

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

از ویژگی هایی Groovy می توان به dynamic typing و closures و operator overloading اشاره کرد
فشردگی از ویژگی های بارز Groovy می باشد و این به این خاطر است که Groovy بیشتر المنت هایی که در جاوا نیاز است را لازم ندارد .

به عنوان مثال کد زیر که به زبان جاوا نوشته شده است
for (String it : new String[] {"Rod", "Carlos", "Chris"})
if (it.length() <= 4)
System.out.println(it);
["Rod", "Carlos", "Chris"].findAll{it.size() <= 4}.each{println it}
در زبان Groovy به صورت زیر می باشد

اسلاید 6 :

برنامهنویسی شیگرا (Object-Oriented)

همه چیز در Groovy یک شی است. و به راحتی شی گرایی را پیاده سازی می کند
سایر خصوصیات
1 + 1
به صورت زیر اجرا شود:
1.plus(1)
این به معنی این است که میتوان در Groovy عملگرها را رونویسی کرد
Operator Overloading
Groovy تمام عملگرها را به صورت فراخوانی تابع پیادهسازی میکند. این باعث میشود که کد زیر:

اسلاید 7 :

برنامهنویسی تابعی (Functional )

برنامه نویسی تابعی سبکی از برنامهنویسی است که بر روی استفاده از توابع، بدون استفاده از متغیرهای حالت، برای حل مسایل

محاسباتی تاکید میکند. در این نوع برنامه نویسی توابع به عنوان انواع داده های اولیه شناخته می شوند و می توان آن ها را به یک دیگر پاس داد

توابع Groovy میتوانند برای تعریف توابعی به کار روند که هیچ گام رویهای ندارند به عنوان مثال تابع فاکتوریل را میتوان به صورت زیر پیادهسازی کرد:

def fac(n) { n == 0 ? 1 : n * fac(n - 1) }
بستارها (Closures)

قابلیت Closure معمولا در زبان های برنامه نویسی functional که در آنها توابع بعنوان نوع داده اولیه شناخته می شود کاربرد دارد

به بیان ساده Closure رفرنسی به یک تابع است، در عین حال که به scope ای که در آن تعریف شده است نیز اشاره دارد

برای درک بهتر بستار به مثال زیر توجه فرمایید
def clos = { println "hello!" }

println "Executing the Closure:"
clos()

اسلاید 8 :

پویا بودن (dynamic)

در Groovy میتوان ساختار کلاسهای تعریف شده را در زمان اجرا تغییر داد. میتوان در زمان به یک کلاس متغیر یا تابع جدید اضافه کرد
انواع

در Groovy برای تعریف یک متغیر تعریف نوع آن لازم نمی باشد به عنوان مثال
def someObject = "some value"
GroovyObject someObject = "some value";

هنگامی که کد بالا به بایتکد جاوا ترجمه میشود، معادل کد زیر در جاوا خواهد بود:
البته در Groovy امکان تعریف نوع صریح هک وجود دارد
String someObject = "some value"

اسلاید 9 :

یکپارچهسازی مستقیم با جاوا

کلاسهای Groovy به بایتکد جاوا ترجمه میشوند، و میتوان کلاسهای جاوا را در Groovy ، و کلاسهای Groovy را در جاوا استفاده کرد.
Metaprogramming

زبان های برنامه نویسی مفسری از جمله Groovy دارای این ویژگی می باشند
Metaprogramming را به زبان ساده می توان توانای ایجاد یک برنامه دیگر داخل برنامه براساس شرایط مختلف تعریف کرد

اسلاید 10 :

Syntax

Syntax زبان Groovy تفاوت چندانی با جاوا ندارد به طور کلی یکی از اهداف این زبان ساده نوشتن و کوتاه کردن کد های جاوا می باشد با این وجود می توان برای نوشتن کد از syntax جاوا استفاده نمود

به عنوان کد زیر در جاوا می باشد
System.out.println("Hi");
println “Hi"
کد زیر هم در Groovy
در راستای کوتاه سازی کد ها شکل حلقه هم تغییر نموده است به عنوان مثال

اسلاید 11 :

تعریف آرایه هم تغیر اندکی داشته

int a=new int[2]
def A=[[1,2,3],[4,5,6],[7,8,9]]
def A=[[1,2,3],[4,5,6],[7,8,9]]
def B=[[9,8,7],[6,5,4],[3,2,1]]
def c= new Integer[3][3]

for(i in 0..2){
for(j in 0..2){
c[i][j]=0
for(k in 0..2){
c[i][j]+=A[i][k]*B[k][j]
}
}
}
قطعه کد زیر حاصل ضرب دو ماتریس را حساب می کند

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