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

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


10
なぜCはPascalに勝ったのですか?[閉まっている]
私の理解では、1980年代、そしておそらく1990年代にも、PascalとCは実稼働言語としてほとんど真っ向勝負でした。 パスカルの究極の終miseは、ボーランドのデルファイの怠慢によるものですか?または、運が悪かったり、Pascalに本質的に問題があるなど(復活の希望はありますか?) 好き嫌いではなく、歴史的な事実や観察できるバックアップに興味があります。

10
「if」および「while」と一緒に使用する場合、言語が式の周りに括弧を必要とするのはなぜですか?
C、Java、およびC ++のような言語はすべてで使用した場合、式全体の周りに括弧を必要としif、whileまたはswitch。 if (true) { // Do something } とは対照的に if true { // Do something } 括弧が冗長であるため、これは私には奇妙に思えます。この例でtrueは、は単独の式です。括弧は、私が知っている方法でその意味を変えません。なぜこの奇妙な構文が存在し、なぜそんなに一般的ですか?気付いていないのに利点はありますか?

9
どの時点で自分が言語を「学んだ」と言えるでしょうか?
プログラミングの数年で、RubyからC ++までのすべてをいじりました。私は基本的な構文(Ruby)を学ぶことから、言語の能力を伸ばすいくつかの主要な(私にとって)プロジェクトを完了するまで、すべてを行いました。この多様性(および言語の真の学習が決して止まらないという事実)を考えると、いつ言語を知っている(または学習した)と言えますか?

8
一部の言語コミュニティ(RubyやPythonなど)が断片化を防止できる一方で、他の言語コミュニティ(LispやMLなど)ができないのはどうしてですか?
「Lisp」(または「Lispライク」)という用語は、Common Lisp、Scheme、Arcなど、さまざまな言語の総称です。MLなど、他の言語コミュニティにも同様の断片化があります。 ただし、RubyとPythonはどちらも、言語自体に変更を加えるのではなく、実装(PyPyやYARVなど)でイノベーションが発生したこの運命を回避することに成功しています。 RubyとPythonのコミュニティは、言語の断片化を防ぐために特別なことをしましたか?

10
構文設計-引数が渡されないときに括弧を使用する理由
多くの言語では、構文function_name(arg1, arg2, ...)を使用して関数を呼び出します。引数なしで関数を呼び出す場合は、実行する必要がありますfunction_name()。 コンパイラーまたはスクリプトインタープリターが()関数呼び出しとして正常に検出する必要があることは奇妙に感じます。変数が呼び出し可能とわかっている場合、なぜfunction_name;十分ではないのでしょうか? 一方、一部の言語では次のことを実行できます。関数またはコマンドを呼び出すことfunction_name 'test';もできますfunction_name 'first' 'second';。 括弧は、優先順位を宣言するためだけに必要であり、他の場所ではオプションである場合、括弧はより良いと思います。たとえば、行うことif expression == true function_name;はとして有効である必要がありますif (expression == true) function_name();。 私の意見で最も厄介なことは'SOME_STRING'.toLowerCase()、プロトタイプ関数が引数を必要としないことが明らかになったときに行うことです。なぜデザイナーはよりシンプルなものに反対したの'SOME_STRING'.lowerですか? 免責事項:誤解しないでください、Cのような構文が大好きです!;)私はそれがもっと良いかどうか尋ねているだけです。要求に()はパフォーマンス上の利点がありますか、それともコードを理解しやすくしますか?正確な理由は何なのか本当に興味があります。

11
ANSI Cが私たちの新しいプロジェクトには不十分であると上司に納得させるにはどうすればよいですか?[閉まっている]
数か月前、社内で開発されたテスト機器を制御し、一連の測定値を記録するアプリの開発を開始しました。シンプルなUIが必要です。また、継続的な記録が必要なため、スレッドが必要になる可能性があります。このアプリケーションは数年間使用され、この期間中は多くのコンピューターサイエンスの学生によって維持されます。 私たちの上司は約30年前に卒業しました(犯罪とは見なされません。私もその半分以上を背負っています)。このアプリケーションをANSI Cで開発することを義務付けています。ほぼ全時間であり、したがって、彼は私たちが何をしているかを理解できなければなりません。彼はまた、抽象データ型を使用しないことを決定しました。彼は私たちが使用したいグローバル変数(ため息)の名前のリストさえも私たちに与えました。 私は実際にしばらくこのアプローチを試しましたが、すべてのポインター操作が安全で、すべての文字列が正しいサイズであることを確認するのに本当に時間がかかりました。さらに、実際に手元の問題に関連するコードの行数は、コードベースのほんの一部でした。数日後、私は全体を廃棄し、C#を使用して新たに始めました。私たちの上司はすでにプログラムが実行されていることを見ており、その動作方法は気に入っていますが、別の言語で書かれていることを知りません。 来週、私たち二人はソースコードを調べるために会い、彼は「それを維持する方法を知っている」。私はちょっと怖いです、そして、私は私の決定を支持するためにどんな議論を使用することができるかあなたたちから聞きたいです。 ward病なあなたのもの、

16
例外をサポートしない言語でゼロ除算を処理する方法は?
私は、いくつかのビジネス要件を解決するために新しいプログラミング言語を開発していますが、この言語は初心者ユーザーを対象としています。そのため、言語には例外処理のサポートがなく、追加しても例外を使用するとは思われません。 私は除算演算子を実装しなければならないポイントに達しましたが、ゼロ除算エラーを最適に処理する方法を疑問に思っていますか? このケースを処理する方法は3つしかありません。 エラーを無視し0て、結果として生成します。可能であれば警告を記録します。 NaN数値の可能な値として追加しNaNますが、言語の他の領域の値を処理する方法についての質問が発生します。 プログラムの実行を終了し、重大なエラーが発生したことをユーザーに報告します。 オプション#1が唯一の妥当な解決策のようです。オプション#3は、この言語を使用してロジックを夜間のcronとして実行するため、実用的ではありません。 ゼロ除算エラーを処理するための私の代替手段は何ですか?また、オプション#1を使用する場合のリスクは何ですか?

14
解釈されたコードとコンパイルされたコードのパフォーマンスに関する一般的なステートメントを作成できますか?
企業が使用すべき推奨事項に到達するために、2つのテクノロジーを比較しています。テクノロジーBのコードがマシンコードにコンパイルされる間、テクノロジーAのコードは解釈されます。私の比較では、通訳プロセスの追加のオーバーヘッドがないため、一般にTech Bはより良いパフォーマンスを発揮すると述べています。また、プログラムはさまざまな方法で作成できるため、技術Aで作成されたプログラムは技術Bで作成されたプログラムよりも優れている可能性があると述べています。 レビューのためにこのレポートを提出したとき、レビュー担当者は、一般に解釈プロセスのオーバーヘッドがTech Bのパフォーマンスが優れていると結論付けるのに十分な大きさになる明確な理由はないと述べました。 だから私の質問は、コンパイル/解釈されたテクノロジーのパフォーマンスについて何か言うことができますか?コンパイルされたものが一般的に解釈されたものよりも速いと言える場合、どうすればレビュー担当者に私のポイントを納得させることができますか?

8
CがC ++で不十分な言語の「バインディング」を提供するのはなぜですか?
私は最近、C ++を介してCを使用するタイミングを疑問に思っていました。幸いなことに、誰かがすでに私にそれを打ち負かし、しばらくかかりましたが、私はその質問に対するすべての答えとコメントを消化することができました。 ただし、その投稿の1つの項目は、検証や説明のような例なしで、何度も何度も対処されます。 「Cコードは、ライブラリに複数の言語バインディングが必要な場合に適しています」 それは言い換えです。複数の人がC ++で(いくつかのextern機能を介して)複数の言語バインディングが可能であることを指摘していることに注意する必要がありますが、それでも、その記事全体を読むと、Cが移植性/言語バインディングに理想的であることは明らかです。私の質問は:なぜですか? Cでライブラリを記述すると他の言語でのバインディングや移植性が向上する理由を具体的に説明してください。

3
F#とScalaの最大の違いは何ですか?
F#とScalaはどちらも関数型プログラミング言語であり、開発者が不変のデータ型のみを使用することを強制しません。どちらもオブジェクトをサポートしており、他の言語で記述されたライブラリを使用して、仮想マシンで実行できます。どちらの言語もMLに基づいているようです。 F#は.NETとJavaプラットフォーム用のScala向けに設計されているという事実にもかかわらず、F#とScalaの最大の違いは何ですか?

30
プログラミングの第一原則をどう思いますか?
私はいつも「これの最初の原則は何ですか?」何かの基本的なこと(プログラミングなど)を学んだ後。IMOという刺激的な質問で、何かの背後にある最も重要な原則、特にプログラミングなどのスキルについて考えるように強制することができます。 それでは、プログラミングの最初の原則は何だと思いますか?少し後で回答します。

11
Javaの最新のレビュー[終了]
私は数年前からプログラミングをしていて、Javaを始めました。そして、Javaが何らかの形で劣った言語であると主張するさまざまなソースを見つけました。各言語には長所と短所があることをよく知っていますが、Javaについて読んだ多くのことは時代遅れのようです。 Javaが劣っている最もよく挙げられる理由は、たとえばC ++など、他のネイティブにコンパイルされた言語よりもJavaがはるかに遅いことです。多くの人々は、パフォーマンス部門が明らかに不足しているため、Javaの使用についてゲームデザイナーのノッチ(Minecraftを開発した)を批判しています。当時はJavaの方がはるかに低速でしたが、それ以来、特にJITコンパイルでは多くの改善が見られました。 今日、言語としてのJavaについて客観的な意見を聞きたいと思います。したがって、私の質問には4つの部分があります。 パフォーマンス。 a。今日のJavaの速度はC ++と比較してどうですか? b。Javaを使用して最新のAAAタイトルを作成することは可能でしょうか? c。JavaがC ++より遅いのは、具体的にどのような分野ですか?(つまり、数値演算、グラフィックス、またはその周辺) Javaは現在、コンパイル言語またはインタープリター言語と見なされていますか? 初期の頃から対処されてきたJavaの主な欠点は何ですか? まだ対処されていないJavaの主な欠点は何ですか? 編集: 明確化の目的のために、私はこのJava対C ++を作成していません。明らかに、平均してc ++はJavaよりも少し高速です。この時点で、Javaを言語としての成熟度に関して比較するものが必要です。C ++は永遠に存在しているので、私は比較の良い点になると思いました。

15
私はCを知りません。そして、なぜそれを学ぶ必要がありますか?[閉まっている]
私の最初のプログラミング言語はPHP(gasp)でした。その後、JavaScriptの使用を開始しました。私は最近C#で仕事をしました。 Cのような低レベルまたは中レベルの言語を一度も見たことがありません。 大規模なプログラミングコミュニティの一般的なコンセンサスは、「Cのようなことを率直に学んでいないプログラマーは、ポインター、データ型、参照による値の受け渡しなどのプログラミング概念を扱うことができない」ということです。 私は同意しない。私はそれを主張します: 高水準言語は簡単にアクセスできるため、より多くの「プログラマーではない」人が飛び込んで混乱する 高レベルの言語で実際に何かを成し遂げるためには、「学習-低レベル-最初」の福音伝道者のほとんどの支持者と同じ概念を理解する必要があります。 一部の人々はCを知る必要があります。それらの人々は、低から中レベルのコードを書くことを要求する仕事を持っています。私はCが素晴らしいと確信しており、Cを知っているいくつかの悪いプログラマーがいると確信しています。 なぜバイアスなのか?良い、正直、空腹のプログラマーとして、Cを(何らかの予期しない理由で)習得しなければならなかった場合、私はCを習得します。私たちが何に興味があるのか​​を学ぶべきではないでしょうか?有限の時間を利用して前進すべきではないでしょうか?なぜ一部のプログラマーはこれに同意しないのですか? 優れたプログラマーと悪いプログラマーとの間の基本的な決定論的特性は、あなたがしていることの卓越性を追求することだと思います。 Java、Pascal、PHP、JavaScriptなどの高水準言語で記述されたものが、Cの事前知識から実際にどのように恩恵を受けたのか、実世界の例はありますか?例をいただければ幸いです。


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