プリンキピア

第7章高水準プログラミング言語

Thought Provokers考えてみよう

Exercises 1–4練習問題 1–4
1. Consider TechWorks, the startup company committed to leveraging innovative technologies as a business growth facilitator. Describe how it can best use programming in various HLLs to create innovative software that can administer and generate business. Give some precise examples and explain how the startup would be able to benefit from HLL programming from a business standpoint (i.e., keep sustaining the cost of doing business while increasing its number of customers).
英語のヒント
1. 革新的な技術を事業成長の促進に活用する、新興企業TechWorksを考えよう。事業を管理し、仕事を生み出す革新的なソフトウェアを作るために、さまざまな高水準言語によるプログラミングを、どうすれば最もうまく利用できるかを述べなさい。具体的な例を挙げ、事業の観点から、高水準言語でのプログラミングがその新興企業にどう役立つかを説明しなさい。つまり、顧客数を増やしながら、事業にかかる費用を引き続き賄うには、どうすればよいか。
2. Consider our startup company committed to leveraging innovative technologies as a business growth facilitator. Describe how it can best use the Java or C# programming language constructs to create specific products or services that can generate business. Give precise examples and explain how the startup would be able to scale the resulting business (i.e., keep sustaining the cost of doing business while increasing its number of customers).
英語のヒント
2. 革新的な技術を事業成長の促進に活用する、この新興企業を考えよう。事業を生み出す特定の製品やサービスを作るために、JavaまたはC#のプログラミング言語の構成要素を、どうすれば最もうまく使えるかを述べなさい。具体的な例を挙げ、その結果生まれる事業をどう拡大できるかを説明しなさい。つまり、顧客数を増やしながら、事業にかかる費用を引き続き賄うには、どうすればよいか。
3. Consider our startup company committed to leveraging innovative technologies as a business growth facilitator. Describe how it can best use hybrid HLLs to implement products or services in a business context. Give precise examples and explain how the startup would be able to scale the approach and save costs while keeping its customers happy.
3. 革新的な技術を事業成長の促進に活用する、この新興企業を考えよう。事業の中で製品やサービスを実装するために、混成方式の高水準言語を、どうすれば最もうまく利用できるかを述べなさい。具体的な例を挙げ、顧客の満足を保ちながら、その方法を拡大し、費用を削減するにはどうすればよいかを説明しなさい。
4. Consider our startup company committed to leveraging innovative technologies as a business growth facilitator. Describe how it can best use programming language implementation to create a repertoire of related services as well as a repository of code samples that may be used to generate business. Give precise examples and explain how the startup would be able to scale the resulting business (i.e., sustain the cost of doing business while increasing its number of customers).
英語のヒント
4. 革新的な技術を事業成長の促進に活用する、この新興企業を考えよう。事業を生み出すために使える、関連サービスの一式とコード例の保管場所を作るために、プログラミング言語の実装をどうすれば最もうまく利用できるかを述べなさい。具体的な例を挙げ、その結果生まれる事業をどう拡大できるかを説明しなさい。つまり、顧客数を増やしながら、事業にかかる費用を賄うには、どうすればよいか。

Labs実習

1. Work through the “Hello, World!” Java tutorial (https://openstax.org/r/76JavaTutorial) to learn how to program Java to write a sentence to the screen. Start Exercise to cross reference the tutorial with the program. Find the online IDE Replit (https://openstax.org/r/76Replit) and establish an account. Research how to write “Hello World” to the screen in C++ and Python. Enter the code in Replit and write a report on your experiment pointing out some of the key concepts that you learned.
英語のヒント
1. 画面へ一文を出力するJavaプログラムの書き方を学ぶために、「Hello, World!」のJavaチュートリアル(https://openstax.org/r/76JavaTutorial)に取り組みなさい。「Start Exercise」で演習を開始し、チュートリアルとプログラムを照らし合わせなさい。オンラインIDEのReplit(https://openstax.org/r/76Replit)を見つけ、アカウントを作成しなさい。C++とPythonで「Hello World」を画面に出力する方法を調べなさい。Replitへコードを入力し、学んだ主要な概念をいくつか挙げて、実験の報告書を書きなさい。
2. C++ has the concept of libraries of container classes, and both Java and C# have similar libraries of collections classes. These contain various types of data structures. We have examined the array; however, the array has limitations. Learn more about the container and collections classes, and look for examples of the patterns of data they are designed to represent and support. Contrast the various offerings with the plain array. Catalog the similarities and differences between the concepts in these three languages. Which of these libraries do you prefer? Why?
英語のヒント
2. C++には、コンテナークラスのライブラリーという考え方があり、JavaとC#にも、似たコレクションクラスのライブラリーがある。これらには、さまざまな種類のデータ構造が含まれる。これまで配列を調べてきたが、配列には限界がある。コンテナークラスとコレクションクラスについてさらに学び、それらが表現し、支えるように設計されている、データのパターンの例を探しなさい。さまざまな機能を、単純な配列と対比しなさい。これら三つの言語での概念の共通点と違いを、一覧にまとめなさい。どのライブラリーを好むか。その理由は何か。
3. Study the most popular API library packages which enable multithreading for the languages of C, C++, and Java. In each of these languages, can you describe how multithreading works? Out of the routines you’ve learned so far, which of them are safe for multithreading? Which are not? Can all routines be made thread-safe?
英語のヒント
3. C、C++、Javaでマルチスレッドを可能にする、特によく使われるAPIライブラリーパッケージを調べなさい。それぞれの言語で、マルチスレッドがどのように動くかを説明できるか。これまで学んだルーチンのうち、マルチスレッドで安全に使えるものと、使えないものはどれか。すべてのルーチンをスレッドセーフにできるだろうか。
4. WebAssembly (https://openstax.org/r/76WebAssembly) is a new assembly programming language intended to execute high-performance code in the browser. Investigate the language features, and write a summary of the reasons for its use and the possible benefits and disadvantages for employing it for a simple web application.
英語のヒント
4. WebAssembly(https://openstax.org/r/76WebAssembly)は、ブラウザーで高性能なコードを実行するための、新しいアセンブリープログラミング言語である。言語の特徴を調べ、その利用理由と、単純なWebアプリケーションに採用した場合に考えられる利点・欠点をまとめなさい。