タグ付けされた質問 「programming-languages」

タスクを完了するために計算のステップを実行するようにコンピューターに指示するための人工言語。プログラマーがコンピューターと通信できるようにします。

8
組み込みソフトウェア市場でCが優位を占めるのはなぜですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 5年前に閉鎖されました。 ほとんどすべての人が祝福を言うでしょう。 パフォーマンス! さて、Cはアスレチックコードを書くことができます。しかし、そうすることができる他の言語があります、結局のところ!そして、最新のコンパイラの最適化能力は素晴らしいです。DOES Cは、他の言語が持っていないことをいくつかの利点がありますか?または、ドメイン内でより柔軟な機器を使用する必要はありませんか?

3
Google's Goはタイプセーフな言語ですか?
このページhttp://golang.org/doc/go_faq.htmlの書き込み: Goには静的な型がありますが、言語は典型的なオブジェクト指向言語よりも型を軽く感じさせようとします だから私の質問は、ジェネリック(C#など)で安全に入力するか、緩やかに入力する(javascriptなど)か、オプション(Vb.Netのオプションstrictなど)で安全に入力することです

10
開発者が動的に型付けされた言語で型を指定できないのはなぜですか?
私が知っている動的に型付けされた言語は、開発者に変数の型を指定させたり、少なくともそれを非常に限定的にサポートさせたりすることはありません。 たとえば、JavaScriptは、便利な場合に変数のタイプを強制するメカニズムを提供しません。PHPを使用すると、メソッドの引数のいくつかのタイプを指定できますが、ネイティブ型(使用する方法はありませんint、string引数のために、など)、および引数以外の型を強制する方法はありません。 同時に、手動で型チェックを行うのではなく、場合によっては動的に型付けされた言語で変数の型を指定する選択肢があると便利です。 なぜそのような制限があるのですか?技術的/パフォーマンス上の理由(JavaScriptの場合)なのか、政治的な理由(PHPの場合)なのか?これは、私がよく知らない動的に型付けされた他の言語の場合ですか? 編集:回答とコメントに続いて、説明の例を示します。プレーンなPHPに次のメソッドがあるとします。 public function CreateProduct($name, $description, $price, $quantity) { // Check the arguments. if (!is_string($name)) throw new Exception('The name argument is expected to be a string.'); if (!is_string($description)) throw new Exception('The description argument is expected to be a string.'); if (!is_float($price) || is_double($price)) throw new Exception('The price …

11
プログラミング言語は厳格か緩いか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 2年前に閉店。 PythonおよびJavaScriptでは、セミコロンはオプションです。 PHPでは、配列キーを囲む引用符はオプション($_GET[key]vs $_GET['key'])です。ただし、それらを省略すると、最初にその名前の定数が検索されます。また、ブロックに2つの異なるスタイル(コロン、または括弧で区切られた)を使用できます。 現在、プログラミング言語を作成していますが、どの程度厳密に作成するかを決定しようとしています。余分な文字は本当に必要ではなく、優先順位のために明確に解釈できる場合が多くありますが、一貫性を促進するためにそれらを強制するべきかどうか疑問に思っています。 どう思いますか? さて、私の言語はプログラミング言語というよりも、凝ったテンプレート言語ではありません。Haml テンプレートとDjangoテンプレートの一種です。私のC#Webフレームワークで使用されることを意図しており、非常に拡張可能であることになっています。

6
FlashはJavaアプレットよりも本当に優れていますか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 私はまだ学生で、プログラミングの実生活経験があまりありません。〜5k行以上のコードを書いたことはありません。私はFlashとJavaの両方でコードを書きましたが、なぜJavaアプレットとしてではなく、Flashでビデオプレイヤー(YouTubeなど)のようなWebアプリケーションを書いているのか理解できません。そのため、実践的な経験をお持ちのプログラマーに、このテーマに関する賢明な言葉をお聞きしたいと思います。 アプレットに対するFlashの本当の利点はありませんが、少なくとも私にとっては、バグのように思えます。Flashで何かを作成する方が速いことは理解していますし、高速プロトタイピングに適している理由はわかりますが、一般的には価値がありますか?YouTubeが凶暴になるたびに、Flashでそれを書くために開発者を呪います。LinuxをOperaで使用している場合、これは常に発生します。 だから、基本的に、なぜ人々はアプレットではなくフラッシュを使用しているのですか?

9
嫌いな言語を使用してプロジェクトに取り組む必要がある場合はどうしますか?
私は最近、PHPで書かれたプロジェクトの作業に割り当てられました。私はそれを変えることはできず、実際に試みるつもりもありません。 ただし、これは珍しいシナリオではありません。見ているコードや制作しているコードが泣きたいときに、プロジェクトに取り組む意欲をどのように高めますか? 編集: これは、現時点で利用可能なソフトウェア関連の処理を行うキャンパスでの唯一の仕事であるため、「ジョブを変更するだけ」は実際にはオプションではありません。

3
クリス・ソーヤーがアセンブラーでジェットコースターの大部分を書くのにどのくらいの時間とどのような複雑さが関与していたでしょうか?
この質問から、別の質問があります... クリス・ソーヤーがアセンブラーでジェットコースターの大部分を書くのにどのくらいの時間とどのような複雑さが関係していたでしょうか? この質問を特定して分類するために、私は興味があります。 クリスが自分でゲームを書くのにかかったと推定されるおおよその工数(推測)または、アセンブラーのコーディング時間の比率のおよその割合を指定して、C / C ++ですべてを記述します。 アセンブラーをよく知っているプログラマーは、これをこのような低レベルの言語抽象化のための過度に複雑なタスクと考えていますか?パフォーマンス上のメリットは別として、これはChrisが持っている異常な自然の能力なのでしょうか、それともその程度の学習に値するスキルセットなのでしょうか?複雑さ/パフォーマンスのことはアセンブラーを習得する価値があると(書くために)考えているのか、それともアセンブラーで自然に発達したスキルをたくさん持っている場合(おそらくハードウェアの操作から) / hardware drivers / electronics / etc)。

8
プログラミング言語は、英語に基づいていることからどのような利点がありますか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 5年前に閉鎖されました。 現在、世界は英語ベースのプログラミング言語でプログラミングされているのは、歴史的/経済的状況のためだけでなく、特に英語の形態にはアルゴリズム的思考に最も適した特性があるためだと思います。しかし、とにかく、これについてあなたの意見を聞くことは興味深いでしょう、特にあなたが多言語であるならば。 私はドイツ語ベースの言語について言及しているものを見ました(たとえば、WW2のおかげで私たちがほとんど知らない最初のプログラミング言語であるPlankalkulを参照してください)、80年代に存在していたロシア語ベースのAlgolも少なくとも紙の上では、バイナリで存在したかどうかはわかりません。ENベースの言語のように完全な単語よりも短縮された単語や奇妙な略語があるため、どちらも少し鈍いように見えました。したがって、他の言語ベースのPLを知っていれば、今日は完全に古風で無関係なものであっても、純粋に理論的なものであっても、それらを見てみると面白いでしょう。 そして、主な質問に戻りましょう。もしあれば、シェークスピアの言語をプログラミングに非常に良いものにしているのは何ですか? (実際、Wikipediaには非英語ベースのプログラミング言語のリストがあります(もちろん、他にどこに?))お気に入り。)

9
暗黙の変換ができないのはなぜですか?
私が理解しているように、暗黙的な変換はエラーを引き起こす可能性があります。 しかし、それは理にかなっていない-通常の変換もエラーを引き起こすべきではありませんか? なぜ持っていない len(100) 次のように解釈する(またはコンパイルする)言語で動作する len(str(100)) 特に、それが機能する唯一の方法(知っている)だからです。言語はエラーが何であるかを知っています、なぜそれを修正しませんか? この例ではPythonを使用しましたが、これほど小さいものは基本的に普遍的だと感じています。

11
KISSの原則はプログラミング言語の設計に適用されますか?
KISS(「シンプルに保つ、バカにする」または「シンプルにバカにする」、例えばこちらを参照)は、明らかに工学に由来するものですが、ソフトウェア開発の重要な原則です。ウィキペディアの記事から引用: 原則は、ジョンソンが設計エンジニアのチームにいくつかのツールを渡したという物語によって最もよく例証されています。したがって、「愚かな」とは、物事が壊れる方法と、それらを修正するために利用できる洗練度との関係を指します。 これをソフトウェア開発の分野に適用したい場合、「ジェット機」を「ソフトウェアの一部」に、「平均メカニック」を「平均開発者」に、「戦闘条件下」を「予想されるソフトウェア開発/保守中」に置き換えます条件」(期限、時間の制約、会議/中断、利用可能なツールなど)。 したがって、後で作業しやすくするために、ソフトウェアの一部をシンプルに(またはコンマを省略した場合は単純な愚かさ)維持することを試みることが一般に受け入れられている考えです。 しかし、KISSの原則はプログラミング言語の設計にも適用できますか?この原則を念頭に置いて特別に設計されたプログラミング言語、つまり「平均的な労働条件の下で平均的なプログラマーができるだけ少ない労力でできるだけ多くのコードを記述および維持できるようにする」ことを知っていますか? 特定の言語を引用する場合、この意図が言語設計者によって明確に表現されているドキュメントへのリンクを追加できると便利です。いずれにせよ、特定のプログラミング言語に関する個人的な意見ではなく、デザイナーの(文書化された)意図について学ぶことに興味があります。

8
関数型言語の構文が人間の言語により近いのはなぜですか?
私は関数型プログラミングに興味があり、Haskellと直接対決することにしました。私の頭が痛い...しかし、私は最終的にそれを取得します...しかし、私は1つの好奇心を持っていますが、なぜ構文はとても謎めいています(別の言葉がないのですか)? それがより表現力がなく、人間の言語により近い理由はありますか? FPは数学の概念のモデリングが得意であり、簡潔な表現手段の一部を借用していることを理解していますが、それでも数学ではありません...それは言語です。

2
「本物のプログラマはアセンブリ言語を任意の言語で書くことができる」というのは本当ですか?
本物のプログラマは、任意の言語でアセンブリコードを作成できます。 (ラリーウォール)。 私の知る限り、ラリー・ウォール氏は、実際のプログラマーにとって、どの言語もASMと同じ機能を持つことができると言っています。しかし、私は真剣に理解していません。Perl、Python、Java、C#などの高水準言語でアセンブリコードを作成するにはどうすればよいですか?PerlやPythonなどの言語にはポインターさえありません。または彼は何か他のものを意味していますか?ウォール氏は実際に何を言おうとしているのですか?

1
なぜより高い種類が必要なのですか?
いくつかの言語は、(例えば、型パラメータを持つクラスおよび機能を可能にするList<T>場合T、任意のタイプであってもよいです)。たとえば、次のような関数を使用できます。 List<S> Function<S, T>(List<T> list) ただし、一部の言語では、この概念を1レベル上に拡張して、署名付きの機能を使用できます。 K<S> Function<K<_>, S, T>(K<T> arg) K<_>それ自体がそのような型である場合List<_>、型パラメーターがあります。この「部分型」は、型コンストラクターとして知られています。 私の質問は、なぜこの能力が必要なのですか?List<T>すべてList<T>がほぼ同じであるが、すべてK<_>が完全に異なる可能性があるため、次のような型を持つことは理にかなっています。共通の機能をまったく持たないOption<_>とを持つことができますList<_>。

2
ラムダ計算とプログラミング言語の関係は何ですか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 5年前に閉鎖されました。 来年はコンピューターサイエンスの最初の1年(大学)を開始し、ほとんどCで書きます(それが問題になる場合)。私は検索を試みましたが、私が見つけるもののほとんどはラムダ計算の知識を前提としています。プログラミングでラムダ計算が単一変数計算よりもはるかに有用であると考えられるのはなぜですか?ラムダ式と関数型プログラムの間に関係はありますか?プログラミング言語の開発に影響を与えたのは、ラムダ計算に関するアロンゾ教会の仕事でしたか? 学校の外の誰もがそれについて騒ぎ続けており、私はそれを学び、それがプログラミングとプログラミング言語の理解に直接関係することを熱望しているにもかかわらず、彼らが何について話しているのか見当がつかない。

6
関数を呼び出すときに関数のパラメーター名がわからない場合の対処
ここにあなたの考えを聞きたいプログラミング/言語の問題があります。 私たちは、ほとんどのプログラマーが従うべき規約を開発しました。これは言語構文の一部ではありませんが、コードを読みやすくするのに役立ちます。もちろん、これらは常に議論の問題ですが、ほとんどのプログラマーが同意すると思う少なくともいくつかのコア概念があります。変数に適切な名前を付け、一般的な名前を付け、極端に長くならないように行を作成し、長い関数、カプセル化などを避けます。 しかし、まだコメントしている人がいないという問題があり、それが最大の問題かもしれません。関数を呼び出すときに引数が匿名になるという問題です。 関数は数学に由来しますが、f(x)には明確な意味があります。これは、関数にはプログラミングで通常行われるより厳密な定義があるためです。数学の純粋な関数は、プログラミングの場合よりもはるかに少ないことができ、はるかに洗練されたツールです。通常、1つの引数(通常は数値)のみを受け取り、常に1つの値(通常は数値)を返します。関数が複数の引数を取る場合、それらはほとんどの場合、関数のドメインの単なる余分な次元です。つまり、1つの引数は他の引数よりも重要ではありません。確かに明示的に順序付けされていますが、それ以外には意味の順序付けはありません。 しかし、プログラミングでは、関数を定義する自由度が高くなります。この場合、それは良いことではないと主張します。一般的な状況では、このように定義された関数があります func DrawRectangleClipped (rectToDraw, fillColor, clippingRect) {} 定義を見ると、関数が正しく記述されていれば、何が何であるかは完全に明確です。関数を呼び出すとき、IDE /エディターで次の引数がどうあるべきかを伝えるインテリセンス/コード補完のマジックを持っているかもしれません。ちょっと待って。実際に通話を作成しているときに必要な場合、ここで不足しているものはありませんか?コードを読んでいる人にはIDEの利点がなく、定義にジャンプしない限り、引数として渡された2つの長方形のどちらが何に使用されるかわかりません。 問題はそれ以上です。引数がローカル変数に由来する場合、変数名のみが表示されるため、2番目の引数が何であるかさえわからない状況があります。たとえば、次のコード行を見てください DrawRectangleClipped(deserializedArray[0], deserializedArray[1], deserializedArray[2]) これはさまざまな言語でさまざまな程度に緩和されますが、厳密に型指定された言語でさえ、変数に適切な名前を付けたとしても、関数に渡すときの変数の型については言及しません。 通常はプログラミングの場合と同様に、この問題には多くの解決策があります。多くはすでに一般的な言語で実装されています。たとえば、C#の名前付きパラメーター。しかし、私が知っているすべてには重大な欠点があります。すべての関数呼び出しですべてのパラメーターに名前を付けると、コードが読みやすくなる可能性はありません。多分、プレーンテキストプログラミングが提供する可能性を超えているように感じます。ほとんどすべての領域でJUSTテキストから移動しましたが、まだ同じコードを使用しています。コードに表示するためにより多くの情報が必要ですか?テキストを追加します。とにかく、これは少し接線になっているので、ここで停止します。 2番目のコードスニペットに答えた1つの回答は、おそらく最初にいくつかの名前付き変数に配列をアンパックしてから使用するでしょうが、変数の名前は多くのことを意味する可能性があり、呼び出される方法は必ずしもあなたがするべき方法を教えてくれません呼び出された関数のコンテキストで解釈されます。ローカルスコープには、leftRectangleとrightRectangleという名前の2つの四角形があります。これは、それらが意味的に表すものであるが、関数に与えられたときに表すものに拡張する必要がないためです。 実際、呼び出された関数のコンテキストで変数に名前が付けられている場合、その関数呼び出しで潜在的に可能な情報よりも少ない情報を導入しており、コードが悪いコードになる場合があります。rectForClippingに格納する四角形を作成するプロシージャと、rectForDrawingを提供する別のプロシージャがある場合、DrawRectangleClippedへの実際の呼び出しは単なるセレモニーです。新しいことは何も意味せず、ネーミングで既に説明しているにもかかわらず、コンピューターがまさにあなたが望むものを正確に知っているように存在する行。これは良いことではありません。 私はこれについて新鮮な視点を聞きたいです。私はこれを問題と考える最初の人ではないと確信していますが、どのように解決しますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.