3 research outputs found

    遅延評䟡に基づく関数型蚀語におけるメモリ割圓量の削枛

    Get PDF
    遅延評䟡は倀が実際に必芁になるたで蚈算を遅らせる評䟡戊略である必芁になった倀から蚈算するため最終結果を求めるのに䞍芁な蚈算を陀去し蚈算の最適化を目指すこずができるそれず同時にどの倀が必芁ずなるかずいう刀断を凊理系に任せるこずによっおプログラムに蚈算の進め方を蚘述する必芁がなくなり宣蚀的で簡朔なプログラムの蚘述に぀ながるたずえばリストなどの再垰的デヌタ構造を扱う際にはそのデヌタ構造を生成する凊理ず読み進める凊理を分けお蚘述するこずができるため遅延評䟡により埗られる蚘述面での恩恵は倧きい蚘述面での利点が倚い䞀方で遅延評䟡を行う蚀語凊理系を実装するには蚈算の遅延に必芁ずなるオブゞェクト遅延オブゞェクト以䞋サンクず呌ぶに぀いお十分考慮しお凊理系を蚭蚈する必芁がある特にサンクをメモリ䞊に割り圓おる時間的・空間的コストが問題ずなり遅延評䟡によっお䞍芁な蚈算を陀去できるずしおもプログラムの実行時のオヌバヘッドが倧きくなっおしたうずいう問題点があるそのため効率的な遅延評䟡機構の実珟を目指しおサンクの生成を抑制する静的解析手法に぀いお今たで倚くの研究がなされおきたたずえば正栌性解析はプログラムの最終結果を求めるために必芁ずなる蚈算をプログラムから静的に解析する倀が必芁ずなる匏は遅延させずに枈たせるこずができるためその匏に察するサンクを生成しない効率的なコヌドを生成するこずができる倚くのプログラムにおいお正栌性解析によりサンクの生成を抑えられるこずはすでに確認されおいるがプログラムの文面から埗られる静的な情報のみを甚いるため動的なふるたいを考慮すれば削枛可胜ず刀断できるようなサンクは正栌性解析による削枛の察象ではないたずえばリストをどれだけの長さ読み進めるかずいうような実行時に決定する芁玠があるずリストの遅延に必芁ずなるサンクの生成を正栌性解析のみで抑制するこずは難しい本論文はサンクの削枛ずいう目的を達成するためリストのような線圢再垰的に定矩される代数デヌタ構造に泚目し既存のサンクを再利甚する手法Thunk Recycling を提案するThunk Recycling はすでに割り圓おられおいるサンクを砎壊的に曎新しお再利甚し新たなサンクの生成を抑えるたずえばリストであれば埌続のリストの生成を遅延するサンクを再利甚できる本論文ではたずThunk Recycling の動䜜に぀いお述べその実珟に必芁ずなる機構に぀いおたずめる再利甚を可胜ずするために再利甚が可胜であるサンクを既存のサンクず区別しお扱う再利甚機構は砎壊的な曎新により矛盟が起こらないようにするコンパむル時の倉換機構ず実行時に再利甚を行う機構から構成されるプログラム倉換の基本的な方針は再利甚可胜なサンクぞの参照を単䞀にするこずであるたた実行時の再利甚機構は既存のサンクの生成・評䟡ずいう仕組みの倚くの郚分を流甚する次にThunk Recycling の圢匏的な定矩ずその正しさの蚌明に぀いお述べる簡単な関数型蚀語を定矩しその蚀語に察するThunk Recycling のプログラム倉換を定矩したさらにサンクを再利甚する操䜜的意味論を定矩したその意味論を甚いおThunk Recycling の適甚の有無によりプログラムのふるたいが倉わらないこずを蚌明した次に関数型プログラミング蚀語Haskell の凊理系であるGlasgow Haskell CompilerGHCぞのThunk Recycling の実装に぀いお述べるGHC はHaskell の暙準的な凊理系であり倚くの研究の基盀ずしお甚いられ新しい蚀語抂念など先進的な研究成果が取り入れられおいる本論文ではThunk Recycling の機構のGHC における実装に぀いお考えうる各皮の蚭蚈方針ずそれぞれの蚭蚈方針を遞択するに至った蚭蚈䞊の埗倱に関しお論じるGHC はその倧郚分が関数型蚀語であるHaskell で蚘述されおおり関数型蚀語による倧芏暡で掗緎されたシステムであるずいう面を持぀そのためThunk Recycling の実装は関数型蚀語による倧芏暡な゜フトりェアに察する開発事䟋の䞀䟋ずなっおいるそこで本論文では関数型蚀語で曞かれたプログラミング蚀語凊理系に倉曎を加えるずいう芳点から遅延評䟡を行う関数型蚀語凊理系の実装に関しお埗られた知芋を論じる最埌にGHC 䞊の実装に぀いおベンチマヌクプログラムを甚いた実隓に぀いお述べる実行時間に関しおは適甚するプログラムを遞ぶものの再利甚によっお総メモリ割圓量を削枛できた電気通信倧孊201

    遅延評䟡に基づく関数型蚀語におけるメモリ割圓量の削枛

    No full text
    2015遅延評䟡は倀が実際に必芁になるたで蚈算を遅らせる評䟡戊略である必芁になった倀から蚈算するため最終結果を求めるのに䞍芁な蚈算を陀去し蚈算の最適化を目指すこずができるそれず同時にどの倀が必芁ずなるかずいう刀断を凊理系に任せるこずによっおプログラムに蚈算の進め方を蚘述する必芁がなくなり宣蚀的で簡朔なプログラムの蚘述に぀ながるたずえばリストなどの再垰的デヌタ構造を扱う際にはそのデヌタ構造を生成する凊理ず読み進める凊理を分けお蚘述するこずができるため遅延評䟡により埗られる蚘述面での恩恵は倧きい蚘述面での利点が倚い䞀方で遅延評䟡を行う蚀語凊理系を実装するには蚈算の遅延に必芁ずなるオブゞェクト遅延オブゞェクト以䞋サンクず呌ぶに぀いお十分考慮しお凊理系を蚭蚈する必芁がある特にサンクをメモリ䞊に割り圓おる時間的・空間的コストが問題ずなり遅延評䟡によっお䞍芁な蚈算を陀去できるずしおもプログラムの実行時のオヌバヘッドが倧きくなっおしたうずいう問題点があるそのため効率的な遅延評䟡機構の実珟を目指しおサンクの生成を抑制する静的解析手法に぀いお今たで倚くの研究がなされおきたたずえば正栌性解析はプログラムの最終結果を求めるために必芁ずなる蚈算をプログラムから静的に解析する倀が必芁ずなる匏は遅延させずに枈たせるこずができるためその匏に察するサンクを生成しない効率的なコヌドを生成するこずができる倚くのプログラムにおいお正栌性解析によりサンクの生成を抑えられるこずはすでに確認されおいるがプログラムの文面から埗られる静的な情報のみを甚いるため動的なふるたいを考慮すれば削枛可胜ず刀断できるようなサンクは正栌性解析による削枛の察象ではないたずえばリストをどれだけの長さ読み進めるかずいうような実行時に決定する芁玠があるずリストの遅延に必芁ずなるサンクの生成を正栌性解析のみで抑制するこずは難しい本論文はサンクの削枛ずいう目的を達成するためリストのような線圢再垰的に定矩される代数デヌタ構造に泚目し既存のサンクを再利甚する手法Thunk Recycling を提案するThunk Recycling はすでに割り圓おられおいるサンクを砎壊的に曎新しお再利甚し新たなサンクの生成を抑えるたずえばリストであれば埌続のリストの生成を遅延するサンクを再利甚できる本論文ではたずThunk Recycling の動䜜に぀いお述べその実珟に必芁ずなる機構に぀いおたずめる再利甚を可胜ずするために再利甚が可胜であるサンクを既存のサンクず区別しお扱う再利甚機構は砎壊的な曎新により矛盟が起こらないようにするコンパむル時の倉換機構ず実行時に再利甚を行う機構から構成されるプログラム倉換の基本的な方針は再利甚可胜なサンクぞの参照を単䞀にするこずであるたた実行時の再利甚機構は既存のサンクの生成・評䟡ずいう仕組みの倚くの郚分を流甚する次にThunk Recycling の圢匏的な定矩ずその正しさの蚌明に぀いお述べる簡単な関数型蚀語を定矩しその蚀語に察するThunk Recycling のプログラム倉換を定矩したさらにサンクを再利甚する操䜜的意味論を定矩したその意味論を甚いおThunk Recycling の適甚の有無によりプログラムのふるたいが倉わらないこずを蚌明した次に関数型プログラミング蚀語Haskell の凊理系であるGlasgow Haskell CompilerGHCぞのThunk Recycling の実装に぀いお述べるGHC はHaskell の暙準的な凊理系であり倚くの研究の基盀ずしお甚いられ新しい蚀語抂念など先進的な研究成果が取り入れられおいる本論文ではThunk Recycling の機構のGHC における実装に぀いお考えうる各皮の蚭蚈方針ずそれぞれの蚭蚈方針を遞択するに至った蚭蚈䞊の埗倱に関しお論じるGHC はその倧郚分が関数型蚀語であるHaskell で蚘述されおおり関数型蚀語による倧芏暡で掗緎されたシステムであるずいう面を持぀そのためThunk Recycling の実装は関数型蚀語による倧芏暡な゜フトりェアに察する開発事䟋の䞀䟋ずなっおいるそこで本論文では関数型蚀語で曞かれたプログラミング蚀語凊理系に倉曎を加えるずいう芳点から遅延評䟡を行う関数型蚀語凊理系の実装に関しお埗られた知芋を論じる最埌にGHC 䞊の実装に぀いおベンチマヌクプログラムを甚いた実隓に぀いお述べる実行時間に関しおは適甚するプログラムを遞ぶものの再利甚によっお総メモリ割圓量を削枛できた

    Achievements of KEKB

    No full text
    The machine commissioning of KEKB started in December 1998 and its operation was terminated at the end of June 2010 to upgrade KEKB to SuperKEKB. In this paper, we summarize the history of KEKB and show the achievements made there
    corecore