Xtend - Xtend

Xtend
Xtend-логотипі
ПарадигмаНысанға бағытталған, императивті, функционалды
ЖобалағанСвен Эффтинге, Себастьян Зарнеков
Әзірлеушітипофокс
Бірінші пайда болды2011
Тұрақты шығарылым
2.19 / 3 қыркүйек, 2019; 15 ай бұрын (2019-09-03)[1]
Пәнді теруСтатикалық, күшті, қорытынды жасалды
ПлатформаJava виртуалды машинасы
ОЖКросс-платформа
ЛицензияEclipse Public License
Веб-сайтhttp://www.xtend-lang.org
Әсер еткен
Java, Скала, Groovy, Smalltalk, Xpand

Xtend Бұл жалпы мақсат жоғары деңгейлі бағдарламалау тілі үшін Java виртуалды машинасы. Синтактикалық және семантикалық тұрғыдан Xtend-тың тамыры Java бағдарламалау тілі, бірақ нақтырақ синтаксиске және кейбір қосымша функцияларға назар аударады қорытынды шығару, кеңейту әдістері, және оператордың шамадан тыс жүктелуі. Бірінші кезекте объектіге бағытталған тіл, ол сондай-ақ белгілі мүмкіндіктерді біріктіреді функционалды бағдарламалау, мысалы. лямбда өрнектері. Xtend болып табылады статикалық түрде терілген және қолданады Java's типтік жүйе өзгертусіз. Ол жинақталған Java кодын қолданады және осылайша бар Java кітапханаларымен біртұтас интеграцияланады.

Xtend тілі және оның IDE жобасы ретінде әзірленген Eclipse.org[2] және жыл сайынғы Eclipse босату пойызына қатысады. Код ашық код болып табылады Eclipse Public License. Дегенмен, тілді тілден тәуелсіз құрастыруға және басқаруға болады Тұтылу платформасы.

Тарих

Xtend шыққан Xtext, бұл тіл мен редакторды анықтау үшін қолданылатын технология. Xtend алғашқы бөлігі ретінде шығарылды Xtext Eclipse шығарылымында Индиго[3] 2011 жылдың маусымында. Тұтылу шыққаннан бері Джуно[4] (2012 ж. Маусым, Xtend 2.3 нұсқасы) Xtend дербес жобаға айналды.

Мұнда сипатталған Xtend тілін Xpand-тағы бірдей ескі тілмен шатастыруға болмайды[5] жоба. Бастапқыда Xtend жақсы айырмашылық үшін Xtend2 деп аталды. «2» көп ұзамай қарапайымдылығы үшін алынып тасталды. Xtend өзінің шаблондық өрнектерімен бүкіл Xpand технологиясының орнын ауыстыруды білдіреді.

Философия

Java - бұл кітапханалар мен құралдардың үлкен экожүйесі бар ең танымал бағдарламалау тілдерінің бірі. Дегенмен, оның синтаксисі кейбіреулер үшін күрделі деп санайды, ал кейбір ұғымдар жоқ, тек баяу қосылады. Xtend ең жақсысын алуға тырысады Java, бірақ синтаксистік шуды азайтыңыз және кодты қысқа әрі жақсы оқуға мүмкіндік беру үшін жаңа мүмкіндіктер қосыңыз.

Оқытуды жеңілдету үшін Java әзірлеушілер, Xtend синтаксисі жақын Java. Xtend-пен максималды үйлесімділік сақталады Java компиляциялау арқылы Java код және пайдалану Java типтік жүйе. Java код пен Xtend кодын сол жобаның ішінде өз қалауы бойынша араластыруға болады.

Тіркесімін қолдану лямбда өрнектері және кеңейту әдістері, тілді кітапханалар арқылы кеңейтуге болады, яғни тілдің өзін өзгертпестен. Шағын стандартты кітапхана мұны қатты қолданады.

Eclipse негізіндегі Xtend IDE синтаксисті бөлектеуді, кодты аяқтауды, қайта өңдеуді, навигацияны және түзетуді ұсынады. Ол Eclipse-дің Java Development Toolkit-пен біріктірілген.[6]

Семантика

Xtend ұқсас Java көп жағдайда. Xtend файлының мысалы:

пакет үлгіимпорт java.util.Listсынып Сәлемдеуші {  деф Сәлемдеңдер(Тізім<Жол> атаулар) {    үшін(атауы: атаулар) {      println(аты.сәлем)    }  }  деф сәлем(Жол аты) {    'Сәлеметсіз бе ' + аты + '!'  }}

Xtend қамтамасыз етеді қорытынды шығару, яғни аты және әдістердің қайтару түрлері контексттен шығарылуы мүмкін. Сабақтар мен әдістер қоғамдық үнсіздік бойынша өрістер жеке. Нүктелі үтір міндетті емес.

Мысалда әдісі де көрсетілген сәлем деп аталады кеңейту әдісі, яғни оның алғашқы аргументінің ерекшелігі сияқты. Кеңейту әдістері басқа сыныптармен немесе даналармен қамтамасыз етілуі мүмкін.

Цикл үшін императивті пайдаланудың орнына функционалды стильді қолдануға болады лямбда өрнегі шаршы жақшаға алып, жоғары ретті функция әрқайсысы үшін тізімдегі кеңейту синтаксисінде:

деф Сәлемдеңдер(Тізім<Жол> атаулар) {  атаулар.әрқайсысы үшін [ println(сәлем) ]}

Ламбданың параметрі, егер көрсетілмесе, шақырылатынына назар аударыңыз бұлсияқты өткізіп жіберуге болады бұл Java-да. Оның түрі жол ретінде шығарылады. Lambda өрнектері бір әдіс интерфейстеріне автоматты түрде мәжбүр етіледі, мысалы, оларды беруге болады. сияқты java.lang. салыстырмалы.

Үлгі өрнектері - интерполяцияланған мәндері бар үш тырнақша ішіндегі көп жолды жолдар Француз дәйексөздері. Жоғарыдағы мысалда жазуға болады

деф сәлем(Жол аты) '''    Сәлеметсіз бе »аты» !'''

Xtend ақ кеңістікті интеллектуалды басқаруды ұсынады - жоғарыда келтірілген мәтін шығысқа енбейді, осылайша кодты құру талаптарына жауап береді.

Бұдан әрі тілдік ерекшеліктерге жатады мультиметрия, қуатты қосқыш өрнегі және оператордың шамадан тыс жүктелуі кітапхана әдістері арқылы.

Әдебиеттер тізімі

  1. ^ https://www.eclipse.org/xtend/releasenotes.html
  2. ^ Свен Эфтинге. «Ресми Xtend басты беті». Eclipse.org. Алынған 2013-09-14.
  3. ^ «Eclipse Indigo шығарылымы». Wiki.eclipse.org. 2011-03-30. Алынған 2013-09-14.
  4. ^ «Eclipse Juno шығарылымы». Wiki.eclipse.org. 2012-03-17. Алынған 2013-09-14.
  5. ^ «Xpand». Wiki.eclipse.org. 2013-06-04. Алынған 2013-09-14.
  6. ^ «JDT». Eclipse.org. Алынған 2013-09-14.

Библиография

  • Лоренцо Беттини, доменге тән тілдерді Xtext және Xtend көмегімен жүзеге асыру - Екінші басылым, Packt Publishing, 2016

Сыртқы сілтемелер

  • Свен Эфтинге, Себастьян Зарнеков, Java-ны кеңейту, Прагматикалық бағдарламашылар журналы, желтоқсан 2011 ж.
  • Алекс Блевит: Xtend Java-ны кеңейтеді, Свен Эффтинмен сұхбат, InfoQ, маусым 2012 ж.