Sawzall (бағдарламалау тілі) - Википедия - Sawzall (programming language)

Савзалл
ӘзірлеушіGoogle
Бірінші пайда болды2003; 17 жыл бұрын (2003)
ЛицензияApache лицензиясы 2.0
Веб-сайткод.google.com/ мұрағат/ б/ szl/

Савзалл процедуралық болып табылады доменге тән бағдарламалау тілі, қолданылған Google жеке тұлғаның көп мөлшерін өңдеу үшін журнал жазбалар. Sawzall алғаш рет 2003 жылы сипатталған,[1] және szl жұмыс уақыты 2010 жылдың тамызында ашылды.[2] Алайда, бастап MapReduce кестелік агрегаторлар шығарылған жоқ,[3] ашық қайнар көздің жұмыс уақыты сөреден бірнеше журнал файлдарын ауқымды түрде талдау үшін пайдалы емес. Sawzall орнына Lingo келді (кіреді Барыңыз ) Google-дегі көптеген мақсаттар үшін.[4]

Мотивация

Google серверінің журналдары жазбалардың үлкен жиынтығы ретінде сақталады (Хаттама буферлері ішіндегі көптеген дискілерге бөлінген GFS. Журналдармен есептеулерді орындау үшін инженерлер жаза алады MapReduce бағдарламалар C ++ немесе Java. MapReduce бағдарламаларын құрастыру қажет және қажет болғаннан гөрі мағыналы болуы мүмкін, сондықтан журналдарды талдауға арналған бағдарлама жазу көп уақытты қажет етеді. Жылдам сценарийлер жазуды жеңілдету үшін, Роб Пайк т.б. Sawzall тілін дамытты. Sawzall сценарийі MapReduce картасының фазасында жұмыс істейді және кестелерге мәндер шығарады. Содан кейін кішірейту фазасы (сценарий авторына бұған алаңдаудың қажеті жоқ) бірнеше кестелерден кестелерді бір кестелер жиынтығына біріктіреді.

Қазіргі уақытта тек тілдік жұмыс уақыты (Sawzall сценарийін бір кірісте бір рет іске қосады) ашық қайнар көзге ие болды; MapReduce-ге негізделген қолдау бағдарламасы шығарылмаған.[3]

Ерекшеліктер

Кейбір қызықты ерекшеліктерге мыналар жатады:

  • Sawzall сценарийі бір кіріске ие (журнал журналы) және кестеге шығару арқылы ғана шыға алады. Сценарийдің басқа жанама әсерлері болуы мүмкін емес.
  • Сценарий кез-келген шығыс кестесінің санын анықтай алады. Кесте түрлеріне мыналар кіреді:
    • коллекция шығарылған барлық мәндерді үнемдейді
    • сома әрбір шығарылған мәннің қосындысын үнемдейді
    • максимум (n) берілген салмақта тек ең жоғары n мәнді үнемдейді.
  • Сонымен қатар, нақты емес нәтиже беретін бірнеше статистикалық кесте түрлері бар. N параметрі неғұрлым жоғары болса, бағалау дәлірек болады.
    • үлгі (n) барлық шығарылған мәндердің ішінен n мәнінің кездейсоқ таңдамасын береді
    • квантиль (n) берілген сандардың ықтималдықтың жинақталған бөлінуін есептейді.
    • жоғарғы (n) шығарылатын мәндердің ішіндегі ең жиі болатыны n мәнін береді.
    • бірегей (n) шығарылған бірегей мәндердің санын бағалайды.

Sawzall дизайны қуат пен қозғалтқыштың қарапайымдылығын қолдайды:

  • Sawzall статикалық түрде теріліп, қозғалтқыш сценарийді құрастырады x86 оны іске қоспас бұрын.
  • Sawzall құрама деректер түрлерінің тізімдерін, карталарын және құрылымдарын қолдайды. Алайда сілтемелер мен сілтемелер жоқ. Барлық тапсырмалар мен функция аргументтері көшірмелер жасайды. Бұл мәліметтердің рекурсивті құрылымдары мен циклдарының мүмкін еместігін білдіреді.
  • C сияқты, функциялар да глобалды айнымалыларды және жергілікті айнымалыларды өзгерте алады, бірақ жабылмайды.

Sawzall коды

Бұл толық Sawzall бағдарламасы жазбаны оқып шығады және үш нәтиже береді: жазбалар саны, мәндердің қосындысы және квадраттардың қосындысы.

count: int кестесінің қосындысы; total: float кестесінің қосындысы; квадраттардың қосындысы: float кестесінің қосындысы; x: float = кіріс; шығарылым саны <- 1; шығарындылардың жалпы саны <- x; квадраттардың қосындылары <- x * x;

Сондай-ақ қараңыз

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

  1. ^ Роб Пайк, Шон Дорвард, Роберт Гриземер, Шон Куинлан. Мәліметтерді түсіндіру: Sawzall көмегімен параллель талдау
  2. ^ Sawzall-дің Google Code-тегі ашық бастапқы жобасы.
  3. ^ а б Sawzall-дің қай бөліктері ашық көзі екендігі туралы талқылау.
  4. ^ «Sawzall-ді ауыстыру». 2015-12-04. Алынған 2018-06-18.

Әрі қарай оқу

  • С.Гемават, Х.Гобиофф, С.-Т. Leung, Google файлдық жүйесі, операциялық жүйелер принциптері бойынша 19 ACM симпозиумы, еңбектер, 17 ACM Press, 2003, 29–43 бб.

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