當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]TCL語言簡(jiǎn)述

Tcl 是用于工具命令語言的一個(gè)解釋器。它由作為基本命令解釋器嵌入到工具(比如編輯器、調(diào)試器等)中的一個(gè)庫(kù)包組成。Tcl 提供了(a)用于簡(jiǎn)單的文本命令語言的分析器,(b)一組內(nèi)置的實(shí)用命令,和(c)一個(gè) C 接口,工具通過它用特定于工具的命令增加內(nèi)置命令。Tcl 在與窗口組件庫(kù)整合的時(shí)候特別有吸引力:它通過了提供變量、過程、表達(dá)式等機(jī)制增進(jìn)了組件的可編程性;它允許用戶編程組件的外觀和動(dòng)作二者;并且它在交互式程序之間提供一個(gè)簡(jiǎn)單但強(qiáng)力的通信機(jī)制
  作為一種腳本語言,Tcl具有簡(jiǎn)單的語法
  Tcl/Tk 的發(fā)明人 John Ousterhout 教授在八十年代初,是伯克利大學(xué)的教授。在其教學(xué)過程中,他發(fā)現(xiàn)在集成電路 CAD 設(shè)計(jì)中,很多時(shí)間是花在編程建立測(cè)試環(huán)境上。并且,環(huán)境一旦發(fā)生了變化,就要重新修改代碼以適應(yīng)。這種費(fèi)力而又低效的方法,迫使 Ousterhout 教授力圖尋找一種新的編程語言,它即要有好的代碼可重用性,又要簡(jiǎn)單易學(xué),這樣就促成了 Tcl (Tool Command Language) 語言的產(chǎn)生。
  Tcl 最初的構(gòu)想的是希望把編程按照基于組件的方法 (component approach),即與其為單個(gè)的應(yīng)用程序編寫成百上千行的程序代碼,不如尋找一個(gè)種方法將程序分割成一個(gè)個(gè)小的, 具備一定“完整”功能的,可重復(fù)使用的組件。這些小的組件小到可以基本滿足一些獨(dú)立的應(yīng)用程序的需求,其它部分可由這些小的組件功能基礎(chǔ)上生成。不同的組件有不同的功能,用于不同的目的。并可為其它的應(yīng)用程序所利用。當(dāng)然, 這種語言還要有良好的擴(kuò)展性, 以便用戶為其增添新的功能模塊。最后,需要用一種強(qiáng)的,靈活的“膠水”把這些組件“粘”合在一起, 使各個(gè)組件之間可互相“通信”,協(xié)同工作。程序設(shè)計(jì)有如拼圖游戲一樣,這種設(shè)計(jì)思想與后來的 Java 不謀而合。終于在 1988 年的春天, 這種強(qiáng)大靈活的膠水 - Tcl 語言被發(fā)明出來了。
  按照 Ousterhout 教授的定義, Tcl 是一種可嵌入的命令腳本化語言 (Command Script Language)。“可嵌入”是指把很多應(yīng)用有效,無縫地集成在一起。“命令”是指每一條 Tcl 語句都可以理解成命令加參數(shù)的形式:
  命令 [參數(shù) 1] [參數(shù) 2] [參數(shù) 3] [參數(shù) 4] ...... [參數(shù) N]
  腳本化是指 Tcl 為特殊的,特定的任務(wù)所設(shè)計(jì)。但從現(xiàn)在角度看,可以說 Tcl 是一種集 C 語言靈活強(qiáng)大的功能與 BASIC 語言易學(xué)高效的風(fēng)格于一身的通用程序設(shè)計(jì)語言。
  Tk (Tool Kit) 是基于 Tcl 的圖形程序開發(fā)工具箱, 是 Tcl 的重要擴(kuò)展部分。Tk 隱含許多 C/C++ 程序員需要了解的程序設(shè)計(jì)細(xì)節(jié), 可快速地開發(fā)基于圖形界面 Windows 的程序。據(jù)稱, 用 Tcl/Tk 開發(fā)一個(gè)簡(jiǎn)單的 GUI 應(yīng)用程序只需幾個(gè)小時(shí), 比用 C/C++ 要提高效率十倍。需要指明的是這里所說的“窗口”是指 Tcl 定義的窗口,與 X-Windows 與 MS Windows 的定義有所不同,但它可完美地運(yùn)行在以上兩個(gè)系統(tǒng)上。
  Tcl 代表了“tool command language - 工具命令語言”。它由一個(gè)庫(kù)包組成,程序可以把它用作自己的命令語言的基礎(chǔ)。Tcl 的開發(fā)由兩項(xiàng)觀察所推動(dòng)。第一項(xiàng)觀察是,通用可編程命令語言通過允許用戶用命令語言寫程序來擴(kuò)展工具的內(nèi)置設(shè)施,從而擴(kuò)大了工具的能力。在強(qiáng)力的命令語言之中最眾所周知的例子是 UNIX shell[5] 和 Emacs 編輯器[8]。在各自情況下,出現(xiàn)的有著不同尋常能力的計(jì)算環(huán)境,在很大程度上是因?yàn)槟塬@得可編程的命令語言。
  第二個(gè)促成它的觀察是交互式應(yīng)用正在增長(zhǎng)。在 1970 年代晚期和 1980 年代早期的分時(shí)環(huán)境中,幾乎所有的程序都是面向批處理的。典型的使用交互式的命令 shell 來調(diào)用它們。除了 shell 之外,只有少數(shù)其他的程序是交互式的,比如編輯器和郵件器。正好相反,今天使用的個(gè)人工作站,帶有它們自己的光柵顯示器和鼠標(biāo),鼓勵(lì)了一種不同的系統(tǒng)結(jié)構(gòu),在這里大量的程序是交互式的,并且最常見的交互方式是直接用鼠標(biāo)操縱單獨(dú)的應(yīng)用。此外,今天能獲得的大顯示器使很多交互式的應(yīng)用立即活躍起來成為可能,而對(duì)于在十年前很小的屏幕這是不實(shí)際的。
  不幸的是,很少的今天的交互式程序擁有 shell 或 Emacs 命令語言的能力。在這里好的命令語言是存在著的,它們趨向與特定的程序捆綁在一起。每個(gè)新的交互式程序都要求開發(fā)一個(gè)新的命令語言。在多數(shù)情況下,應(yīng)用程序員沒有時(shí)間或愛好去實(shí)現(xiàn)一個(gè)通用設(shè)施(特別是在應(yīng)用自身很簡(jiǎn)單的時(shí)候),所以結(jié)果的命令語言趨向于帶有不充分的功能和笨拙的語法。
  Tcl 是一個(gè)獨(dú)立于應(yīng)用的命令語言。它作為一個(gè) C 庫(kù)包存在,可以用于很多不同的程序中。Tcl 庫(kù)提供了用于簡(jiǎn)單但完全可編程的命令語言的一個(gè)分析器。這個(gè)庫(kù)還實(shí)現(xiàn)了提供了通用的編程構(gòu)造的一組內(nèi)置命令,比如變量、列表、表達(dá)式、條件、循環(huán)和過程。單個(gè)的應(yīng)用程序可以用特定于應(yīng)用的命令來擴(kuò)展基本的 Tcl 語言。Tcl 庫(kù)還提供一組實(shí)用工具例程來簡(jiǎn)化特定于工具的命令的實(shí)現(xiàn)。
  我相信 Tcl 在窗口環(huán)境中是特別有用的,它提供了兩項(xiàng)優(yōu)勢(shì)。首先,它可以用做編制應(yīng)用的界面的一個(gè)通用機(jī)制。如果一個(gè)工具基于 Tcl,則應(yīng)當(dāng)相對(duì)容易的去修改應(yīng)用的用戶界面,并使用新命令來擴(kuò)展這個(gè)界面。其次和更重要的是,Tcl 為工具之間通信提供一種統(tǒng)一的框架。如果在所有的工具中統(tǒng)一使用了它,Tcl 將使工具在一起工作得比今天的狀況更加優(yōu)雅。
  Tcl 是不尋常的因?yàn)樗峁﹥煞N不同的接口: 給用戶發(fā)起 Tcl 命令的一個(gè)文本接口,和給它所嵌入的應(yīng)用的一個(gè)過程接口。這些接口的每個(gè)都必須是簡(jiǎn)單的、強(qiáng)力的和高效的。在語言設(shè)計(jì)中有四個(gè)主要的因素:
  [1] 語言用于命令。幾乎所有 Tcl“程序”都是短小的,很多只有一行長(zhǎng)。多數(shù)程序?qū)⑹擎I入的,執(zhí)行一次或者幾次,接著就丟棄了。這提示了這門語言應(yīng)當(dāng)有一個(gè)簡(jiǎn)單的語法,以便于鍵入命令。多數(shù)現(xiàn)存的編程語言都有復(fù)雜的語法;在寫長(zhǎng)程序的時(shí)候有益,但如果用做命令語言就笨拙了。
  [2] 語言必須是可編程的。它應(yīng)當(dāng)包含通用編程構(gòu)造,比如變量、過程、條件和循環(huán),這樣用戶可以通過寫 Tcl 過程來擴(kuò)展內(nèi)置的命令??蓴U(kuò)展性也要求簡(jiǎn)單的語法:這使 Tcl 程序生成其他 Tcl 程序變得容易了。
  [3] 語言必須允許一個(gè)簡(jiǎn)單而高效的解釋器。由于 Tcl 庫(kù)要包含到許多小程序中,特別是在沒有共享庫(kù)的機(jī)器上,解釋器必須不占用太多的內(nèi)存。用來解釋 Tcl 命令的機(jī)制必須足夠快,可用于每秒發(fā)生上百次的事件,比如鼠標(biāo)移動(dòng)。
  [4] 語言必須允許對(duì) C 應(yīng)用的一個(gè)簡(jiǎn)單接口。它必須易于讓 C 應(yīng)用調(diào)用這個(gè)解釋器,并易于讓它們用特定于應(yīng)用的命令來擴(kuò)展內(nèi)置的命令。這個(gè)因素是我決定不使用 Lisp 作為命令語言的原因之一:Lisp 的基本數(shù)據(jù)類型和存儲(chǔ)管理機(jī)制與 C 實(shí)在是不同,很難在它們之間建立清晰而簡(jiǎn)單的接口。對(duì) Tcl 我使用了對(duì)于 C 最自然的數(shù)據(jù)類型(字符串)。
  Tcl 的基本語法類似于 UNIX shell:命令由用空格或 TAB 分隔的一個(gè)或多個(gè)字段組成。第一個(gè)字段是命令的名字,它可以是內(nèi)置命令、特定于應(yīng)用的命令、或者是由一系列的 Tcl 命令組成的過程。在第一個(gè)后面的字段都作為參數(shù)傳遞給命令。如同在 UNIX shell 中那樣,換行字符用做命令分隔符,分號(hào)也可用來分隔在同一行上的命令。不同于 UNIX shell,每個(gè) Tcl 命令返回一個(gè)字符串結(jié)果,或者是空串,如果不適宜返回值的話。
  在 Tcl 中有四個(gè)補(bǔ)充的語法構(gòu)造,它們給予語言一種類似 Lisp 的風(fēng)格。使用花括號(hào)來組合復(fù)雜的參數(shù);它們充當(dāng)可嵌套的引用字符。如果參數(shù)的第一個(gè)字符是左花括號(hào),則這個(gè)參數(shù)不以空白終結(jié)。轉(zhuǎn)而,它終結(jié)于相匹配的右花括號(hào)。傳遞給這個(gè)命令的參數(shù)由在花括號(hào)中間的所有東西組成,并剝除圍繞的花括號(hào)。例如,命令
  set a {dog cat {horse cow mule} bear}
  將收到兩個(gè)參數(shù):“a”和“dog cat {horse cow mule} bear”。這個(gè)特定命令將把變量 a 設(shè)置為等于第二個(gè)參數(shù)的一個(gè)字符串。如果參數(shù)包圍在花括號(hào)中,則不對(duì)這個(gè)參數(shù)做下面描述的其他替換?;ɡㄌ?hào)最常見的用途是把一個(gè) Tcl 子程序指定為到 Tcl 命令的參數(shù)。
  在 Tcl 中第二個(gè)語法構(gòu)造是是方括號(hào),它用于引發(fā)命令替換。如果在參數(shù)中出現(xiàn)了左方括號(hào),則從這個(gè)左方括號(hào)一直到相匹配的右方括號(hào)的所有東西都作為一個(gè)命令來對(duì)待,并由 Tcl 解釋器遞歸的執(zhí)行。命令的結(jié)果接著替換到這個(gè)方括號(hào)包圍的字符串所在的位置上。例如,考慮命令
  set a [format {Santa Claus is %s years old} 99]
  format 命令做類似 printf 的格式化并返回字符串“Santa Claus is 99 years old”,接著把它傳遞給 set 并賦值到變量 a。第三個(gè)語法構(gòu)造是美元號(hào),它用于變量替換。如果它出現(xiàn)在參數(shù)中,則隨后的字符作為變量的名字對(duì)待;變量的內(nèi)容被替換到參數(shù)中這個(gè)美元符號(hào)和名字所在的位置上。例如,命令
  set b 99
  set a [format {Santa Claus is %s years old} $b]
  導(dǎo)致 a 有同前面段落中的簡(jiǎn)單命令相同的最終值。變量替換不是嚴(yán)格必須的,因?yàn)橛衅渌绞絹磉_(dá)到相同的效果,但是它減少了鍵入。
  最后一個(gè)語法構(gòu)造是反斜杠字符,可以用它把特殊字符插入到參數(shù)中,比如花括號(hào)或非打印字符。
  在 Tcl 中只有一種數(shù)據(jù)類型:字符串。所有命令、到命令的參數(shù)、命令返回的結(jié)果和變量的值都是 ASCII 字符串。Tcl 始終使用字符串便于在 Tcl 庫(kù)過程和包圍它的應(yīng)用的 C 代碼之間來回傳遞信息。這使它易于在不同類型的機(jī)器之間來回傳遞有關(guān) Tcl 的信息。
  盡管在 Tcl 中所有的東西都是字符串,很多命令都希望它們的字符串參數(shù)有特定的格式。這里的字符串有三種特定的通用格式:列表、表達(dá)式和命令。列表只是包含用空白分隔的一個(gè)或多個(gè)字段的字符串,類似于命令??梢允褂没ɡ▉戆鼑鷱?fù)雜的列表元素;這些復(fù)雜的列表元素自身經(jīng)常也是列表,類似于 Lisp。例如,字符串
  dog cat {horse cow mule} bear
  是有四個(gè)元素的一個(gè)列表,其中第三個(gè)元素是有三個(gè)元素的列表。Tcl 提供一組列表操縱的命令,比如建立列表、提取元素、和計(jì)算列表長(zhǎng)度。
  字符串的第二種常見形式是數(shù)值表達(dá)式。Tcl 表達(dá)式同 C 中的表達(dá)式有著同樣的操作符合優(yōu)先級(jí)。Tcl 命令  expr 把字符串作為表達(dá)式來求值并返回結(jié)果(當(dāng)然是作為字符串)。例如,命令
  expr {($a < $b) || ($c != 0)}
  在變量 a 小于變量 b 或者變量 c 是零的時(shí)候返回“1”,否則返回“0”。一些其他的命令,比如 if 和 for, 期望它們的一個(gè)或多個(gè)參數(shù)是表達(dá)式。
  字符串的第三種常見解釋是命令(或命令的序列)。這種形式的參數(shù)用在實(shí)現(xiàn)控制結(jié)構(gòu)的 Tcl 命令中。例如,考慮下列命令:
  if {$a < $b} {
  set tmp $a
  set a $b
  set b $tmp
  }[!--empirenews.page--]
  這里的 if 命令接受兩個(gè)參數(shù),每個(gè)都是用花括號(hào)界定的。If 是內(nèi)置命令,它把它的第一個(gè)參數(shù)作為表達(dá)式來求值;如果結(jié)果非零,則 if 把它的第二個(gè)參數(shù)作為 Tcl 命令執(zhí)行。這個(gè)特定命令在變量 a 小于 b 的時(shí)候交換 a 和 b 的值。
  Tcl 還允許用戶定義用 Tcl 語言寫的命令過程。我稱謂這些過程為 tclproc,為的是區(qū)別于用  C 寫成的其他過程。使用 proc 內(nèi)置命令來建立 tclproc。例如,下面定義了一個(gè)遞歸的階乘過程的 Tcl 命令:
  proc fac x {
  if {$x == 1} {return 1}
  return [expr {$x * [fac [expr $x-1]]}]
  }
  proc 命令接受三個(gè)參數(shù):新 tclproc 的名字、一個(gè)變量名字的列表(在這個(gè)實(shí)例中試只有一個(gè)元素 x 的列表),和一個(gè)構(gòu)成 tclproc 的過程體的 Tcl 命令。一旦執(zhí)行了這個(gè) proc 命令,fac 就可以同其他 Tcl 命令一樣調(diào)用了。例如
  fac 4
  將返回字符串“24”。
  盡管內(nèi)置 Tcl 命令可以令人信服的用作獨(dú)立的編程系統(tǒng),Tcl 實(shí)際上意圖被嵌入到應(yīng)用程序中。我已經(jīng)建造了使用 Tcl 的幾個(gè)應(yīng)用程序,其中之一是針對(duì) X 的叫做 mx 的一個(gè)基于鼠標(biāo)的編輯器。在本文的余下部分,我將使用來自 mx 的例子來展示 Tcl 如何與包圍它的應(yīng)用進(jìn)行交互。
  使用 Tcl 的應(yīng)用程序用同特定應(yīng)用有關(guān)的一些額外的命令來擴(kuò)展內(nèi)置命令。例如,時(shí)鐘程序可以提供額外的命令來控制時(shí)鐘如何顯示和設(shè)置鬧鐘;mx 編輯器提供額外的命令來從磁盤讀取文件,在窗口中顯示它,選擇和修改一定范圍內(nèi)的字節(jié),和把修改后的文件寫回磁盤。應(yīng)用程序員只需要寫特定于應(yīng)用的命令;內(nèi)置命令“免費(fèi)的”提供編程能力和擴(kuò)展能力。對(duì)于用戶,特定于應(yīng)用的命令表現(xiàn)的如同內(nèi)置命令一樣。
  Tcl 和窗口應(yīng)用
  可嵌入的命令語言如 Tcl 在窗口環(huán)境中提供了特別的好處。部分原因是在窗口環(huán)境中有很多交互式程序(所以有很多地方要使用命令語言),部分的原因是在今天的窗口環(huán)境中可配置性是重要的,并且語言如 Tcl 提供了做重新配置的靈活性。Tcl 在窗口應(yīng)用中可以用于兩個(gè)目的: 配置應(yīng)用的界面動(dòng)作,配置應(yīng)用的界面外觀。在下面的段落中討論這兩個(gè)用途。
  Tcl 的第一個(gè)用法是用于界面動(dòng)作。理想的,對(duì)應(yīng)用重要的每個(gè)事件都應(yīng)當(dāng)綁定上 Tcl 命令。每次擊鍵、每次鼠標(biāo)移動(dòng)或鼠標(biāo)按鈕按下(或釋放)、和每個(gè)菜單條目都應(yīng)當(dāng)關(guān)聯(lián)上 Tcl 命令。
  當(dāng)事件發(fā)生時(shí),首先把它映射到它的 Tcl 命令上,接著通過把這個(gè)命令傳遞到 Tcl_Eval 來執(zhí)行它。應(yīng)用不應(yīng)當(dāng)直接接收任何動(dòng)作;所有動(dòng)作都應(yīng)當(dāng)首先通過 Tcl 來傳遞。進(jìn)一步,應(yīng)用應(yīng)當(dāng)提供 Tcl 命令允許用戶改變與任何事件相關(guān)聯(lián)的 Tcl 命令。
  在交互式的窗口應(yīng)用中,Tcl 的使用可能對(duì)于初級(jí)用戶是不可見的: 他們將使用按鈕、菜單和其他界面構(gòu)件來操縱應(yīng)用。但是,如果使用 Tcl 作為所有界面動(dòng)作的中間媒介,則會(huì)產(chǎn)生兩個(gè)好處。首先,使得寫 Tcl 程序來重新配置界面成為可能。例如,用戶將能夠重新綁定擊鍵、改變鼠標(biāo)按鈕、或把一個(gè)現(xiàn)存的操作替代為指定為一組 Tcl 命令或 tclproc 的更加復(fù)雜的操作。第二個(gè)好處是這種方式強(qiáng)制所有的應(yīng)用的功能都可通過 Tcl 來訪問: 任何可以使用鼠標(biāo)或鍵盤調(diào)用的東西都可以使用 Tcl 程序調(diào)用。這使得有可能寫模擬程序動(dòng)作的 tclproc,或把程序的基本動(dòng)作組合到更加強(qiáng)力的動(dòng)作中。這還允許交互式會(huì)話作為一序列 Tcl 命令而被記錄和重演。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉