色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

深入了解抽象語法樹(AST)及其在使用工具和庫中的應(yīng)用

哲想軟件 ? 來源:哲想軟件 ? 作者:哲想軟件 ? 2022-10-13 09:20 ? 次閱讀

在本文中,我們將深入了解抽象語法樹(AST)及其在日常工作中使用的工具和庫中的應(yīng)用。我們更感興趣的是AST的實際使用和應(yīng)用,而不是編譯器、解析器編程語言開發(fā)工具的晦澀學(xué)術(shù)理論。

這是一系列文章中的第一篇,該文章探討了Freshworks的前端開發(fā)人員構(gòu)建和使用的各種AST工具來執(zhí)行大量活動,例如大規(guī)模代碼遷移、重構(gòu)等。

AST 探索者

有一個在線工具可以探索由各種語言解析器生成的AST,稱為ASTExplorer,由Facebook的工程師構(gòu)建。它支持多種語言和解析器。您可以輸入代碼并獲取它表示的AST格式,并在同一瀏覽器窗口中檢查節(jié)點和數(shù)據(jù)。您還可以編寫轉(zhuǎn)換函數(shù),這將幫助您使用AST更改或重構(gòu)代碼。對于任何想要了解AST并在其幫助下創(chuàng)建工具的人來說,這是學(xué)習(xí)和使用AST的最佳工具。

83c2677c-4a8d-11ed-a3b6-dac502259ad0.png

為什么AST對工具很重要?

抽象語法樹是任何語言開發(fā)工具的構(gòu)建塊,因為它們是有效操作源代碼的可擴展手段。通過將代碼表示為樹狀結(jié)構(gòu),您可以利用樹數(shù)據(jù)結(jié)構(gòu)附帶的所有有效操作機制。它比處理以文本片段或字符串表示形式表示的源代碼要快得多。這是因為如果您想對源代碼進行高級和復(fù)雜的操作,那么使用純字符串和字符序列將是一場噩夢。如果您希望有一個方便的表示來對您的代碼進行更改而不會產(chǎn)生意想不到的后果和副作用,那么AST是最好的表示。將源代碼轉(zhuǎn)換為抽象語法樹格式后,

這就是為什么所有語言標(biāo)準(zhǔn)都默認(rèn)帶有AST規(guī)范的原因。該語言本身具有用于創(chuàng)建、轉(zhuǎn)換和使用AST的內(nèi)置API。除此之外,總會有外部工具和庫使使用AST成為一項方便而輕松的任務(wù)。

那么我們實際上在哪里使用AST呢?簡而言之,它在工具和庫的Javascript生態(tài)系統(tǒng)中無處不在。從這個列表中可以看出,如果沒有AST,則根本不可能為Javascript項目提供工具。

語法高亮

代碼完成

靜態(tài)分析

代碼覆蓋率

縮小

即時編譯

源地圖

編譯成JS語言

代碼重構(gòu)

代碼遷移等等。

代碼模組

在Freshworks,當(dāng)我們嘗試將Ember代碼遷移到新版本時,我們首先遇到了像Codemods這樣的AST工具。Ember框架和社區(qū)本身提供了許多codemods來幫助您更輕松、更省時地進行遷移。我們已經(jīng)寫了一篇關(guān)于我們?nèi)绾问褂肅odemods來遷移我們的代碼庫的博客文章

您可能想查看它以重新了解codemod,包括為什么它們有意義,以及為什么它們應(yīng)該成為您的自動遷移工具的關(guān)鍵部分。甚至諸如React、Angular和Vue之類的框架也推薦并提供codemods用于從框架的一個版本遷移到下一個版本的升級。

一旦我們開始使用Codemods進行遷移,我們的開發(fā)人員發(fā)現(xiàn)將他們的代碼遷移到較新版本的框架非常有用且節(jié)省時間。我們需要越來越多的codemod來解決我們的一些遷移問題。因此,我們開始探索和編寫專門解決我們自己的代碼遷移問題的codemod,但同時使codemod更加通用,以便我們可以與更大的JavaScript開發(fā)人員社區(qū)共享它們并使其開源。

但是我們的一些開發(fā)人員無法完全掌握AST等Codemod的底層架構(gòu)以及Babel、recast和jscodeshift等相關(guān)工具。所以我們決定讓我們的開發(fā)人員更容易理解這一點,并減少學(xué)習(xí)的痛苦。我們圍繞AST構(gòu)建了一堆工具來幫助開發(fā)人員熟悉AST和codemods。本系列博文將深入探討這些工具的內(nèi)部架構(gòu)和組件,從而抓住這些工具的本質(zhì)和意義。




審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 編程語言
    +關(guān)注

    關(guān)注

    10

    文章

    1942

    瀏覽量

    34707
  • javascript
    +關(guān)注

    關(guān)注

    0

    文章

    516

    瀏覽量

    53851
  • AST
    AST
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    2327

原文標(biāo)題:Freshworks:AST工具簡介(下)

文章出處:【微信號:哲想軟件,微信公眾號:哲想軟件】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    深入了解邏輯分析儀入門手冊

    深入了解邏輯分析儀入門手冊引言與許多電子測試和測量工具一樣,邏輯分析儀是一種針對特定類型問題的解決方案。它是一種通用工具,可以幫助您調(diào)試數(shù)字硬件、檢驗設(shè)計和調(diào)試嵌入式軟件。對設(shè)計數(shù)字電路的工程師來說
    發(fā)表于 11-19 11:40

    深入了解示波器

    深入了解示波器
    發(fā)表于 11-14 22:32

    專家開講:深入了解電池技術(shù) ──Part 1

    。筆者不會一一詳細(xì)介紹所有的電池技術(shù),只選擇一些常見或是值得認(rèn)識的;而在接下來的專欄里,筆者將開始介紹電池分類、常見規(guī)格以及專業(yè)術(shù)語,如果你有特別想知道的電池技術(shù),歡迎留言!擴展閱讀:專家開講:深入了解
    發(fā)表于 08-18 09:33

    專家開講:深入了解電池技術(shù)──Part 3

    資深工程師 Ivan Cowie 的「深入了解電池技術(shù)」專欄Part 3來啰!這次要介紹的是鉛酸電池(lead-acidbatteries)技術(shù)。鉛酸電池是1859年由法國物理學(xué)家Gaston
    發(fā)表于 08-18 09:37

    深入了解LabVIEW FPGA資料分享

    深入了解LabVIEW FPGA
    發(fā)表于 05-27 08:35

    示波器的深入了解

    示波器的深入了解 引言自然界運行著各種形式的正弦波,比如海浪、地震、聲波、爆破、空氣傳播的聲音,或者身體運轉(zhuǎn)的自然節(jié)律。物理世界里,能
    發(fā)表于 11-04 11:53 ?52次下載
    示波器的<b class='flag-5'>深入了解</b>

    深入了解邏輯分析儀

    深入了解邏輯分析儀 與許多電子測試和測量工具一樣, 邏輯分析儀是一種針對特定類型問題的解決方案。 它是一種通用工具, 可以幫助您調(diào)試數(shù)字硬件、 檢
    發(fā)表于 02-11 10:56 ?39次下載

    深入了解賽靈思System Generator的時間參數(shù)

    深入了解賽靈思System Generator的時間參數(shù)  基于模型的設(shè)計(MBD)因其縮小實時系統(tǒng)抽象的數(shù)學(xué)建模和物理實現(xiàn)之間差距方面的光明前景而備受關(guān)注。通過使用相同的
    發(fā)表于 12-29 11:40 ?1424次閱讀
    <b class='flag-5'>深入了解</b>賽靈思System Generator<b class='flag-5'>中</b>的時間參數(shù)

    深入了解示波器入門手冊

    深入了解示波器入門手冊
    發(fā)表于 03-27 17:43 ?241次下載
    <b class='flag-5'>深入了解</b>示波器入門手冊

    深入了解電感與磁珠的異同

    模擬電子的相關(guān)知識學(xué)習(xí)教材資料——深入了解電感與磁珠的異同
    發(fā)表于 09-27 15:19 ?0次下載

    一種基于程序向量的代碼克隆檢測方法

    詞法單元的特征表示,分析不同字面單詞之間的語義相似性;接著,通過語法分析提取程序的抽象語法AST),為葉子節(jié)點賦予對應(yīng)字面單詞的特征表示
    發(fā)表于 04-07 14:49 ?15次下載
    一種基于程序向量<b class='flag-5'>樹</b>的代碼克隆檢測方法

    基于關(guān)鍵詞的GCC抽象語法消除冗余算法

    GCC( GNU Compiler Collection)編譯器編譯¢語言源程序所生成的抽象語法文本包含大量與源代碼無關(guān)的冗余信息,若直接進行解析,會嚴(yán)重影響分析效率,降低分析精確
    發(fā)表于 05-07 10:30 ?210次下載

    帶你深入了解示波器

    帶你深入了解示波器
    發(fā)表于 02-07 14:26 ?19次下載

    深入了解安全光柵

    深入了解安全光柵
    的頭像 發(fā)表于 06-25 13:53 ?1208次閱讀
    <b class='flag-5'>深入了解</b>安全光柵

    深入了解 GaN 技術(shù)

    深入了解 GaN 技術(shù)
    的頭像 發(fā)表于 12-06 17:28 ?6147次閱讀
    <b class='flag-5'>深入了解</b> GaN 技術(shù)
    主站蜘蛛池模板: 打开双腿狠狠蹂躏蜜桃臀| 久久国产亚洲电影天堂| 在线少女漫画| 无码人妻精品一区二区蜜桃色| 久青草影院| 国产原创剧情麻豆在线| jlzzzjizzzjlzzz亚洲| 夜色88V精品国产亚洲AV| 日韩 国产 中文 无码| 久久热在线视频精品店| 国产欧美精品一区二区色综合 | 亚洲欧美一区二区三区九九九| 欧美激情一区二区三区视频| 精品国产国产综合精品| 国产99热在线观看| lesbabes性欧美| 337p欧洲亚大胆精品| 亚洲精品久久久一区| 日韩亚洲中文欧美在线| 男人都懂www深夜免费网站| 久久电影精品| 和搜子的日子 在线观看| 国产麻豆精品久久一二三| 超碰久久国产vs| 99综合之综合久久伊人| 中字幕视频在线永久在线| 亚洲字幕在线观看| 亚洲色婷婷久久精品AV蜜桃| 午夜福利小视频400| 日韩在线视频www色| 青青草在线视频| 欧美性最猛xxxx在线观看视频| 你是淫荡的我的女王| 美女伊人网| 嗯啊快拔出来我是你老师视频| 日本xxxx8888| 欧洲精品不卡1卡2卡三卡四卡 | 最新黄色在线| 最新老头恋老OLDMAN| 在线成年av动漫电影| 诱咪youmiss|