ロゴ
ユニオンペディア
コミュニケーション
Google Play で手に入れよう
新しい! あなたのAndroid™デバイスでユニオンペディアをダウンロードしてください!
無料
ブラウザよりも高速アクセス!
 

Yacc

索引 Yacc

Yacc(yet another compiler compiler、ヤック)はパーサジェネレータの一つである。1970年代にAT&TでUNIX用にスティーヴン・カーティス・ジョンソンが開発した。.

49 関係: AdaAT&T字句解析器左再帰中間表現バッカス・ナウア記法ポインタ (プログラミング)ヤクボトムアップ構文解析トークンヘッダファイルプリプロセッサパーサジェネレータテトリスオープンソースコンパイラコンパイラコンパイラコード生成スティーヴン・カーティス・ジョンソンスタックソースコードBisonC言語Coco/RCygwin統語論GNUプロジェクトIEEEJavaJavaCCLALR法LexLimboLR法Microsoft WindowsML (プログラミング言語)OpenSolarisPlan 9 from Bell LabsPOSIXRatforUNIX抽象構文木接頭辞構文解析構文解析器構文木機械語有限オートマトン文脈自由文法

Ada

Ada(エイダ)は、強力な言語機能を豊富に持ち、高度な型の体系をもつ、プログラミング言語の一つである。構文はAlgol系である。 史上初のプログラマとされるエイダ・ラブレスの名前にちなんでAdaと命名されているため、ADAと表記するのは誤り。 フリーのコンパイラとしては、GNATなどがある。.

新しい!!: YaccとAda · 続きを見る »

AT&T

AT&T Inc.(エイ ティ アンド ティ)は、アメリカ最大手の電話会社。インターネット接続、映像配信サービス等も提供する。本社はテキサス州ダラスにあり、AT&Tとは旧社名 The American Telephone & Telegraph Company の略。.

新しい!!: YaccとAT&T · 続きを見る »

字句解析器

字句解析器(じくかいせきき)は、字句解析をおこなうプログラム。lexical analyzer(レキシカルアナライザー)あるいはlexer(レキサー)と呼ばれる。 プログラミング言語処理系や自然言語処理などで使われる(自然言語処理では形態素解析とも言う)。代表的な字句解析器生成系にlexがある。lexなどを使用することにより、正規表現などで各トークンの字句規則を記述するだけで字句解析器を自動的に生成できる(字句解析プログラムのソースコードが出力される)。 GNUコンパイラコレクションでは手書きの字句解析器が用いられている。一般に、構文解析器に比べ字句解析器は手書きのほうが向いている。 Category:構文解析 (プログラミング).

新しい!!: Yaccと字句解析器 · 続きを見る »

左再帰

左再帰(Left recursion)とは、言語(普通、形式言語について言うが、自然言語に対しても考えられ得る)の文法(構文規則)にあらわれる再帰的な規則(定義)の特殊な場合で、ある非終端記号を展開した結果、その先頭(最も左)にその非終端記号自身があらわれるような再帰のことである。 ナイーブに再帰下降構文解析の関数に変換すると、実行(ないし評価)すると無限再帰に陥る関数になるのだが、通常の算術の式のように左結合(結合法則#結合性を参照)の中置演算子式は一般に左再帰の構文規則になるため、プログラミング言語処理系の実装のために、実用的な観点から対策が検討されてきた。この関数における再帰を指すこともある。.

新しい!!: Yaccと左再帰 · 続きを見る »

中間表現

中間表現(ちゅうかんひょうげん、Intermediate Representation、IR)は、コンピュータがデータをクロスプラットフォームで扱うために使用するデータ構造の表現である。 中間表現を用いたデータの抽象化はコンピューティング分野では一般的な手法である。異なるプラットフォームで同等の情報を保持するデータを異なるフォーマットで扱う場合に、データを中間表現で表現することで複数フォーマットへの変換処理を効率化することを手助けする。これは自然言語の翻訳に中間言語を用いるのと同等のメリットがある。.

新しい!!: Yaccと中間表現 · 続きを見る »

バッカス・ナウア記法

バッカス・ナウア記法(Backus-Naur form)とは、文脈自由文法を定義するのに用いられるメタ言語のことで、一般にBNFやBN記法と略される。現在はこのBNFを拡張したEBNF (Extended BNF) が一般的に使われている。EBNFでは正規表現を用いてより簡単に記述でき、プロトコル規定言語であるASN.1や、XMLの構文定義にも利用されている。 ジョン・バッカスとピーター・ナウアがALGOL 60 の文法定義のために考案。当初は文脈自由文法の本来の定義に則り or(|)以外の定義はなく、繰り返しは再帰を利用して表現されている。*、?等を含む正規表現はBNFを拡張したEBNFによって導入された。パーサジェネレータを使用して構文解析器を生成する際に、構文を定義するためにも使う。 ISO/IEC 14977:1996においてEBNFの標準が定義されているが、EBNFにもいろいろな亜種や変種がある。例えば、RFC2234にはABNFという変種が定義されている。しかし、ABNFは標準のEBNFとかなり異なる部分がある。.

新しい!!: Yaccとバッカス・ナウア記法 · 続きを見る »

ポインタ (プログラミング)

ポインタ (pointer) とは、あるオブジェクトがなんらかの論理的位置情報でアクセスできるとき、それを参照する(指し示す)ものである。有名な例としては Pascal のポインタが挙げられる。 なお、C++では、さらに独立した「参照」という機能がある。.

新しい!!: Yaccとポインタ (プログラミング) · 続きを見る »

ヤク

ヤク(家畜化された種としての学名はBos grunniens、野生種はBos mutus)は、ウシ目(偶蹄目)ウシ科ウシ属に分類される偶蹄類。.

新しい!!: Yaccとヤク · 続きを見る »

ボトムアップ構文解析

ボトムアップ構文解析(ボトムアップこうぶんかいせき、Bottom-up parsing)は、構文解析において、構文木を、木の葉に相当する終端記号の列から始めて、それを順次左辺の非終端記号へ書き換え、最終的に最上位の非終端記号(たとえば「文」)を得る、というような手順によって導出する構文解析の戦略である。逆はトップダウン構文解析。.

新しい!!: Yaccとボトムアップ構文解析 · 続きを見る »

トークン

トークン (token) は、.

新しい!!: Yaccとトークン · 続きを見る »

ヘッダファイル

ヘッダファイル(Header file)は、特にC言語やC++でのプログラミングで使われるファイルであり、一般にソースコード形式をしていて、コンパイラが別のソースファイルの一部として自動的に展開して使用する。一般にヘッダファイルは、ソースファイルの先頭部分に書かれたディレクティブによってインクルード(その場に内容を展開)される。インクルードファイル(Include file)とも。 ヘッダファイルには、サブルーチンや変数やその他の識別子の前方宣言が含まれていることが多い。複数のソースファイルで宣言する必要のある識別子を1つのヘッダファイルに置き、必要に応じて個々のソースファイルがそのヘッダファイルをインクルードする。 C言語やC++では、標準ライブラリ関数はヘッダファイルで宣言されている。詳しくは、標準Cライブラリと標準C++ライブラリを参照されたい。.

新しい!!: Yaccとヘッダファイル · 続きを見る »

プリプロセッサ

プリプロセッサ (preprocessor) とは、一般にある処理を行うソフトウェアに対して、データ入力やデータ整形などの準備的な処理を行うソフトウェアのことである。特にコンパイラに対して使うことが多く、ここではそれを中心に述べる。 他の分野の例としては、CADやCAEのデータ処理がある。またワープロソフトウェアにおける漢字変換ソフトウェアもプリプロセッサの一例である。.

新しい!!: Yaccとプリプロセッサ · 続きを見る »

パーサジェネレータ

パーサジェネレータ(parser generator)は、構文解析器を作成するプログラムである。.

新しい!!: Yaccとパーサジェネレータ · 続きを見る »

テトリス

テトリス()は、コンピューターゲーム。ジャンルは俗に言う落ち物パズルもの。この種のゲームの元祖的存在であり、1980年代末から1990年代初めにかけ、世界各国で大流行し、現在に至るまで様々な形で移植・アレンジされ、プレイされ続けている。.

新しい!!: Yaccとテトリス · 続きを見る »

オープンソース

ープンソース (open source) とは、言葉通りのソースコードへのアクセスが開かれている(ソースコードが公開されている)ことを意味するのではなく、ソースコードを商用、非商用の目的を問わず利用、修正、頒布することを許し、それを利用する個人や団体の努力や利益を遮ることがないソフトウェア開発の手法を意味する。オープンソース・イニシアティブ は、「オープンソース」と名乗るための要件として「オープンソースの定義」を掲げている。.

新しい!!: Yaccとオープンソース · 続きを見る »

コンパイラ

ンパイラ(英:compiler)とは、コンピュータ・プログラミング言語の処理系(言語処理系)の一種で、高水準言語によるソースコードから、機械語に(あるいは、元のプログラムよりも低い水準のコードに)変換するプログラムである。.

新しい!!: Yaccとコンパイラ · 続きを見る »

コンパイラコンパイラ

ンパイラコンパイラ.

新しい!!: Yaccとコンパイラコンパイラ · 続きを見る »

コード生成

ード生成(Code Generation)とは、コンパイルの最終段階であり、ソースコードの意味が実現された目的コードを生成する過程である。「何らかの目的コード」が具体的には、機械語である場合もあれば、アセンブリ言語である場合もあれば、バイトコードや、場合によっては「ソースコード側が比較すれば高水準であるのに対して低水準な側であると言える言語(例えばC言語など)」ということもある。同程度の水準の言語間の変換を指すトランスパイルなどという語も近年はできた。.

新しい!!: Yaccとコード生成 · 続きを見る »

スティーヴン・カーティス・ジョンソン

ティーヴン・カーティス・ジョンソン()は、アメリカ合衆国の計算機科学者である。彼は20年近くをベル研究所とで過ごし、Yacc、lint、、Portable C Compilerを記述した。 ジョンソンは数学の博士号を取得していたが、経歴の大部分は計算機科学であった。彼は音楽、、設計など、さまざまな題材に取り組んできた。彼の最もよく知られている研究は、UNIXのツール開発とAT&T UNIXポート開発が挙げられる。また1980年代半ば、UNIX System Vの言語開発部門で数年間を過ごした。1986年、彼はシリコンバレーに移り、トランスメタなど十数社のスタートアップ企業に参加した。2002年、彼はThe MathWorksに加わり、MATLABのプログラミング言語に寄与した。 ジョンソンはUSENIX理事を10年間務め、続いて同社長、そしてUSENIX代表を務めた。.

新しい!!: Yaccとスティーヴン・カーティス・ジョンソン · 続きを見る »

スタック

タックは、コンピュータで用いられる基本的なデータ構造の1つで、データを後入れ先出し(LIFO: Last In First Out; FILO: First In Last Out)の構造で保持するものである。抽象データ型としてのそれを指すこともあれば、その具象を指すこともある。 特にその具象としては、割込みやサブルーチンを支援するために極めて有用であることから、1970年代以降に新しく設計された、ある規模以上のコンピュータは、スタックポインタによるコールスタックをメモリ上に持っていることが多い。.

新しい!!: Yaccとスタック · 続きを見る »

ソースコード

青で示されているのが有効なコードである。 ソースコード(source code)とは、コンピュータプログラミング言語で書かれた、コンピュータプログラムである文字列(テキストないしテキストファイル)のことである。.

新しい!!: Yaccとソースコード · 続きを見る »

Bison

Bison(バイソン)とは構文解析器を生成するパーサジェネレータの一種であり、CコンパイラとしてのGCCのサポートのために開発されたフリーソフトウェアである。.

新しい!!: YaccとBison · 続きを見る »

C言語

C言語(シーげんご)は、1972年にAT&Tベル研究所のデニス・リッチーが主体となって開発したプログラミング言語である。英語圏では単に C と呼んでおり、日本でも文書や文脈によっては同様に C と呼ぶことがある。.

新しい!!: YaccとC言語 · 続きを見る »

Coco/R

Coco/R は、対象となる言語の属性付き文法を入力とし、その言語の字句解析器と構文解析器を生成するパーサジェネレータである。字句解析部は一種の決定性有限状態機械として機能する。構文解析部には再帰下降構文解析によるLL法を使う。LL(1)での衝突の解決には、複数シンボルの先読みを行うか、意味論的チェックを行う。そのため、任意の k の LL(k) の文法クラスに対応可能である。 Coco/R にはいくつかの言語での実装がある。リンツ大学のリリースした最新版では、C#版とJava版がある。生成される構文解析器がそれらの言語で書かれている。 Coco/R は修正を加えた GNU General Public License でライセンスされ、配布されている。.

新しい!!: YaccとCoco/R · 続きを見る »

Cygwin

Cygwin(シグウィン)は、Windowsオペレーティングシステム上にUNIXライクな環境を提供する互換レイヤーである。フリーソフトウェアである。.

新しい!!: YaccとCygwin · 続きを見る »

統語論

統語論(とうごろん、syntax)とは、ヒト・人間の言語において文が構成される仕組み、またはそれを扱う言語学の一分野である。統辞論(とうじろん)、構文論(こうぶんろん)ともいう。 統語論は文法[音韻論(音の仕組み)、形態論(語が構成される仕組み)などを含む、言語の構造を成り立たせている諸原理] の一部である。ただし、特に統語論のことを指して「文法」ということもある。.

新しい!!: Yaccと統語論 · 続きを見る »

GNUプロジェクト

GNUプロジェクト(グヌープロジェクト、)とは、フリーソフトウェアマス・コラボレーションプロジェクトである。 プロジェクトは1983年9月27日にMITのリチャード・ストールマンにより発表された。このプロジェクトの狙いは、ユーザーが自由にソフトウェアを実行し、(コピーや配布により)共有し、研究し、そして修正するための権利に基づいたソフトウェアを開発し提供することにより、ユーザーにそのような自由な権利を与えた上でコンピュータやコンピューティングデバイスの制御をユーザーに与えることにある。GNUのソフトウェアはこれらの自由な権利を(そのライセンスによって)法的に保障しているため、フリーソフトウェアである。なおフリーソフトウェアの「フリー」という言葉は常に自由な権利を指し示すために必要なため使われている。 コンピュータの全てのソフトウェアが、(使用、共有、研究、修正を行うための)自由な権利を全てユーザーに付与することを確保するためには、ソフトウェアの中で最も基本的かつ重要な部分である(ユーティリティプログラムを数多く含む)オペレーティングシステムをフリーソフトウェアとすることが必要となった。GNU宣言によると、GNUプロジェクトの創立目標はフリーオペレーティングシステムを設立し、さらに可能であれば、「フリーでないソフトウェアを全く使わないでも済むようUNIXシステムに通常付属する有益なもの全て」も構築することであった。ストールマンはこのオペレーティングシステムをGNU("GNU's not Unix"を意味する再帰的頭字語)と呼ぶことに決め、その設計をプロプライエタリオペレーティングシステムであるUNIXの設計に基づくようにした。GNUの開発は1984年1月に開始された。1991年、リーナス・トーバルズによりGNUプロジェクトとは関係のないプロジェクトで開発されたLinuxカーネルが発表され、1992年12月にGNU General Public Licenseのバージョン2に基づき利用できるようにした, kernel.org, December 1992。LinuxカーネルはGNUプロジェクトによって既に開発されていた、オペレーティングシステムのユーティリティと組み合わされ最初のフリーソフトウェアオペレーティングシステムとして認められた。このフリーソフトウェアオペレーティングシステムはLinuxやGNU/Linuxとして知られている。 GNUプロジェクトは現在、ソフトウェア開発、意識改革、政治的キャンペーンや、新しい題材の共有などを行っている。.

新しい!!: YaccとGNUプロジェクト · 続きを見る »

IEEE

IEEE(アイ・トリプル・イー、The Institute of Electrical and Electronics Engineers, Inc.)は、アメリカ合衆国に本部を持つ電気工学・電子工学技術の学会である。.

新しい!!: YaccとIEEE · 続きを見る »

Java

Java(ジャバ)は、狭義ではプログラミング言語Javaを指す。広義では言語仕様以外にも、仕様が与えられているJavaクラスライブラリやJava仮想マシン、さらにはJDKやJREなどの公式のものをはじめとする、場合によってはサードパーティのものなどを含め曖昧にJavaプラットフォームと総称されるようなものなどのエコシステムなどを指すこともある。構文についてはJavaの文法の記事を参照。.

新しい!!: YaccとJava · 続きを見る »

JavaCC

JavaCC (Java Compiler Compiler) は、オープンソースのJava向けのパーサジェネレータである。 JavaCCは、yaccと同様に拡張BNFを入力としてとる。yaccとの違いは生成されるパーサがJavaのソースコードだということである。 しかしながら、yaccとは異なり、JavaCCはトップダウンのパーサを構築する、そのため、LL (K) クラスの文法にしか対応していない(厳密にいうと左再帰は使えない)。 JavaCCに付属するJJTreeというツールを利用することで、構文木を生成することができる。 JavaCCはBSDライセンスが適用されている。.

新しい!!: YaccとJavaCC · 続きを見る »

LALR法

LALR法(LALR parser)は、構文解析手法の一種であり、Lookahead(先読み)LR法の略である。単純LR法(SLR法)の構文解析器よりも多くの文脈自由文法を扱うことができる。構文解析表の大きさがあまり大きくなく、多くの文法を扱えることから、最も一般的な構文解析器となっている。yacc や GNU bison といったパーサジェネレータの多くもこの種の構文解析器を生成する。 SLR法と同様、LALR法では LR(0) の構文解析表を必要とする。SLR 法では Follow-set を使って reduce アクションを構築するのに対して、LALR法では Lookahead-set を使う。Lookahead-set は構文解析により特化している。Follow-set は関連する記号の集合だが、Lookahead-set はLR(0)アイテムと構文解析状態に特化した集合である。 ある LR(0) 文法での状態 S におけるアイテム I の Follow-set は、文法上 I の左辺の非終端記号の後に出現可能な全記号を含む。一方、状態 S におけるアイテム I の Lookahead-set は、状態 S で構文解析を開始したときの I の右辺に出現可能な記号のみを含む。follow(I) は左辺が同じ I である全 LR(0)アイテムの Lookahead-set の和集合と等価であり、状態やアイテムの右辺は考慮されていない。従って、Follow-set からは文脈情報が失われている。Lookahead-set は特定の構文解析向けであるため、さらに選別が可能で、Follow-set よりも詳細な識別が可能となる。.

新しい!!: YaccとLALR法 · 続きを見る »

Lex

Lex(レック、レックス)はレキシカルアナライザ(字句解析プログラム、字句解析器)を生成するプログラムである。コンパイラの作成のためにパーサジェネレータのyaccとともに使用されることも多い。Lexはエリック・シュミットとマイク・レスクによって書かれunixにおける標準のレキシカルアナライザとなっており、POSIX標準ともなっている。Lexと同等の機能を有し性能が改善されているFlex(英語版)がある。.

新しい!!: YaccとLex · 続きを見る »

Limbo

Limbo は分散システム構築用プログラミング言語であり、Infernoオペレーティングシステムでのアプリケーションソフトウェア作成に使う。ベル研究所の Sean Dorward、Phil Winterbottom、ロブ・パイクが設計した。 Limbo コンパイラはアーキテクチャ独立なオブジェクトコードを生成し、それを Dis 仮想機械でインタプリタ実行するか、性能を強化するために実行直前にコンパイルする。したがって、Limbo で書いたアプリケーションは全ての Inferno プラットフォーム上で動作可能である。 Limbo における並行性の方式は、アントニー・ホーアの Communicating Sequential Processes (CSP) に影響を受けている。.

新しい!!: YaccとLimbo · 続きを見る »

LR法

LR法またはLR構文解析器とは、文脈自由文法の構文解析手法/構文解析器である。LR法では、入力を左(Left)から右に読んでいき、右端導出(Rightmost derivation)を行う。このためLRと名づけられている。「LR(k)」といった場合、k は、消費をともなうことなく「先読み」が進められる入力記号の最大数を意味する。通常、k は 1 であり、その場合省略されることが多い。LR(k)の構文解析器が対応する文脈自由文法も LR(k) と呼ばれる。.

新しい!!: YaccとLR法 · 続きを見る »

Microsoft Windows

Microsoft Windows(マイクロソフト ウィンドウズ)は、マイクロソフトが開発・販売するオペレーティングシステム (OS) の製品群。グラフィカルユーザインタフェース (GUI)を採用している。.

新しい!!: YaccとMicrosoft Windows · 続きを見る »

ML (プログラミング言語)

ML(えむえる、Meta-Language)は、関数型言語のひとつである。現代風の関数型言語としては歴史が古いほうで、型推論機能などを持つが、デフォルトの評価戦略は遅延評価ではなく先行評価で、書き換えが可能なレコード型を持つなど、いわゆる「純粋関数型」でない特徴や機能を持つ。.

新しい!!: YaccとML (プログラミング言語) · 続きを見る »

OpenSolaris

OpenSolaris(オープンソラリス)はSolaris Operating Environmentテクノロジーを基本とした、サン・マイクロシステムズが始めたオープンソースプロジェクト、およびプロジェクトからリリースされるオペレーティングシステム (OS) の呼称である。以後区別のため、前者を「OpenSolarisプロジェクト」、後者を「OpenSolaris」と呼称する。.

新しい!!: YaccとOpenSolaris · 続きを見る »

Plan 9 from Bell Labs

(通称 )は、主に研究用に使われている分散オペレーティングシステム。ベル研究所の で1980年代中ごろから2002年まで、UNIXの研究上の後継として開発された。Plan 9 は、ネットワークやユーザインタフェースまで含めたあらゆるシステムインタフェースを、個別のインタフェースではなくファイルシステムを通して統一的に表現することを特徴とする。Plan 9 は9Pプロトコルを使い、ユーザーにワークステーション毎に独立した作業環境を提供することを目指している。現在もベル研究所とPlan 9コミュニティによって活発に開発がつづいている。 Plan 9 は、UNIXの流れを汲むオペレーティングシステム (OS) の一種であり、開発に当たってUNIXの設計の問題点を改善することを念頭に置かれている。.

新しい!!: YaccとPlan 9 from Bell Labs · 続きを見る »

POSIX

POSIX(ポシックス、ポジックス、Portable operating system interface)は、各種UNIXを始めとする異なるオペレーティングシステム (OS) 実装に共通のアプリケーションプログラミングインタフェース (API) を定め、移植性の高いアプリケーションソフトウェアの開発を容易にすることを目的としてIEEEが策定したAPI規格である。POSIXという名前はリチャード・ストールマンがIEEEに提案したものである。末尾の「」はUNIX互換OSに「」の字がつく名前が多いことからつけられた。ISO/IEC JTC 1/SC 22でISO/IEC 9945として国際規格になっている。.

新しい!!: YaccとPOSIX · 続きを見る »

Ratfor

Ratfor (RATional FORtran) は、FORTRANをC言語風に拡張したプログラミング言語。1976年に、「Software Tools」(Brian W. Kernighan, P. J. Plauger 著。邦訳は『ソフトウェア作法』木村泉訳、共立出版、1981年) で発表された。RatforはRatforで記述されている。 FORTRAN用のプリプロセッサとして実装されている。.

新しい!!: YaccとRatfor · 続きを見る »

UNIX

UNIX (ユニックス、Unix、)は、コンピュータ用のマルチタスク・マルチユーザーのオペレーティングシステムの一種である。公式な商標は「UNIX」だが、商標以外の意味として「Unix」、またはスモールキャピタルを使用して「Unix」などとも書かれる。Unixは1969年、AT&Tのベル研究所にて、ケン・トンプソン、デニス・リッチーらが開発を開始した。 当初はアセンブリ言語のみで開発されたが、1973年にほぼ全体をC言語で書き直した。このため、Unixは歴史上、初めて高水準言語で書かれたOSであると言われる。 1973年の段階ではPDP-11に依存したコードが多く、移植性は低かったが、その後徐々にPDP-11に依存したコードを減少させ、1978年にInterdata 8/32への移植に成功して以降、徐々に他のプラットフォームにも移植されていった。 現在では「Unix」という語は、Unix標準に準拠するあらゆるオペレーティングシステムの総称でもある。現在ではUnixシステムは多数の系統に分かれており、AT&Tの開発停止後も、多数の商用ベンダーや非営利組織などによって開発が続けられている。 1970年代から1980年代の初期にかけて、Unixは大学や研究所などの教育機関で広範囲に採用され、特にカリフォルニア大学バークレー校をオリジナルとするBSD系統が誕生した。また Version 7 Unix や UNIX System V の特徴を持つオペレーティングシステムは「伝統的なUNIX」(traditional Unix)とも呼ばれる。 2007年に、「UNIX」の商標の所有者である標準化団体のThe Open Groupは、Single UNIX Specificationを完全に満たすと認証を受けたシステムのみが「UNIX」の商標を得られるとした。このためそれ以外のシステムは(ずっと以前から、AT&T版およびBSD以外を指して使われていた用語だが)「Unixシステムライク」または「Unixライク(Unix系)」と呼ばれるようになった。ただし The Open Groupはその呼称を気に入っていない。 現在では多く使われているUnixとしてはmacOS、AIX、HP-UX、Solarisなどがある(いずれも商用)。また認証を受けていないUnix系としてはLinux(派生OSにAndroid他)やMINIX、BSDの派生OS(FreeBSD、NetBSD、OpenBSD、DragonFly BSDなど)がある。.

新しい!!: YaccとUNIX · 続きを見る »

抽象構文木

抽象構文木(abstract syntax tree、AST)とは、通常の構文木(具象構文木あるいは解析木とも言う)から、言語の意味に関係ない情報を取り除き、意味に関係ある情報のみを取り出した(抽象した)木構造のデータ構造である。 理論的には、有限なラベル付き有向木であり、分岐点に演算子、葉にそのオペランドを対応させたものである。つまり、葉は変数や定数に対応する。 抽象構文木は構文解析で構文木とデータ構造の中間的なものとして使用される。さらにコンパイラやインタプリタなど(プログラミング言語処理系)でのプログラムの中間表現として使われ、コンパイラ最適化やコード生成はその上で行われる。抽象構文木のとりうる構造は抽象構文で記述されている。 抽象構文木は(具象)構文木とは異なり、プログラムの意味に関係ない部分を省略する。そのような省略の例としては括弧の省略があげられる。抽象構文木では、オペランドのグループ化が自明な木構造とするのが普通であり、グループ化のための括弧などは意味的に不要である。 大多数のプログラミング言語のような文脈自由言語の構文解析で抽象構文木を作るのは簡単である。構文規則ごとに新たな節点を作成し、葉はその規則における記号に対応する。グループ化規則のような抽象構文木に関わらない規則は無視される。そのようにいきなり抽象構文木を生成することもあるし、完全な具象構文木を作り、その後そこから冗長な部分(プログラムの意味に関係しない部分)を除いて抽象構文木に変換することもある。 理論的な観点からは、たとえばソースコード上の位置(何行目の何カラム目など)といった具象の情報は言語処理系には不要であり、抽象構文木には無くてもよいのだが、実践的には、エラーを見つけた時にプログラマに親切なエラーメッセージを出力するためなど、重要な情報であり、時には処理系のフロントエンドではなくバックエンドでも必要なこともある。.

新しい!!: Yaccと抽象構文木 · 続きを見る »

接頭辞

接頭辞(せっとうじ)とは、接辞のうち、語基よりも前に付くもの。接頭語(せっとうご)とも言う。.

新しい!!: Yaccと接頭辞 · 続きを見る »

構文解析

構文解析(こうぶんかいせき、syntactic analysis あるいは parse)とは、文章、具体的にはマークアップなどの注記の入っていないベタの文字列を、自然言語であれば形態素に切分け、さらにその間の関連(修飾-被修飾など)といったような、統語論的(構文論的)な関係を図式化するなどして明確にする(解析する)手続きである。自然言語については自然言語処理における要点のひとつであり、プログラミング言語など形式言語の場合は、形式文法に従い構文木を得る。構文解析を行う機構を構文解析器(parser)と呼ぶ。.

新しい!!: Yaccと構文解析 · 続きを見る »

構文解析器

構文解析器(こうぶんかいせきき)とは、構文解析をおこなうプログラム。パーサ (parser)とも。プログラミング言語処理系の入力部分が代表的であるが、それに限らず設定ファイルの読み込みなど、構造を持った入力テキストの処理を行う。自然言語処理でも使われる。 構文解析のアルゴリズムには複雑なものも多いが、パーサジェネレータの研究は盛んであり、そういったものを使用zすれば、構文規則を記述するだけで構文解析器を自動的に生成できる(プログラムのソースコードが出力される)。.

新しい!!: Yaccと構文解析器 · 続きを見る »

構文木

構文木(こうぶんぎ)とは、構文解析の経過や結果(またはそれら両方)を木構造で表したもの。.

新しい!!: Yaccと構文木 · 続きを見る »

機械語

機械語(きかいご)またはマシン語(Machine code、machine language)とは、コンピュータのプロセッサが直接解釈実行可能な一連の命令群のデータそのもの(を、コンピュータ・プログラミング言語とみなしたもの)である。.

新しい!!: Yaccと機械語 · 続きを見る »

有限オートマトン

有限オートマトン(finite automaton)または有限状態機械(finite state machine, FSM)とは、有限個の状態と遷移と動作の組み合わせからなる数学的に抽象化された「ふるまいのモデル」である。デジタル回路やプログラムの設計で使われることがあり、ある一連の状態をとったときどのように論理が流れるかを調べることができる。有限個の「状態」のうち1つの状態をとる。ある時点では1つの状態しかとらず、それをその時点の「現在状態」と呼ぶ。何らかのイベントや条件によってある状態から別の状態へと移行し、それを「遷移」と呼ぶ。それぞれの現在状態から遷移しうる状態と、遷移のきっかけとなる条件を列挙することで定義される。 有限オートマトンは様々な問題に応用でき、半導体設計の自動化、通信プロトコル設計、構文解析などの工学面での応用がある。生物学や人工知能研究では状態機械(群)を使って神経系をモデル化し、言語学では自然言語の文法をモデル化したりする。.

新しい!!: Yaccと有限オートマトン · 続きを見る »

文脈自由文法

文脈自由文法(ぶんみゃくじゆうぶんぽう、Context-free Grammar、CFG)は、形式言語の理論(特に、生成文法)において全生成規則が以下のようである形式文法である。 ここで V は非終端記号であり、w は終端記号と非終端記号の(0個を含む)任意個の並びである。「文脈自由」という用語は前後関係に依存せずに非終端記号 V を w に置換できる、という所から来ている(「文脈無用」という訳の提案もある)。文脈自由文法によって生成される形式言語を文脈自由言語という。.

新しい!!: Yaccと文脈自由文法 · 続きを見る »

出ていきます入ってきます
ヘイ!私たちは今、Facebook上です! »