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

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



3
実際のパラメーターが「引数」と呼ばれるのはなぜですか?
(引数)(プログラミングの意味で)という言葉はどこから来たのですか? すなわち、実際のパラメータが「引数」と呼ばれるのはなぜですか? 意味は関連していないようであり、その説明はどこにもありません。 用語に関する注意: 「正式な」パラメーター(単に「パラメーター」とも呼ばれます)は、「プレースホルダー」名(たとえば、x)- 関数の宣言されたパラメーターです。 (また、「引数」としても知られる)「実際の」パラメータは、実際の値れる渡された機能には、(たとえば、5)、それゆえ私は、任意の混乱を防止するために、上記のこの用語を使用します。

22
識別子の空白は慣用的なものですか?[閉まっている]
C#スタイルでは、識別子でCamelCaseを使用して単語を区切ることを推奨しています。Lispの伝統は、代わりにダッシュを使用することを提案しています。 識別子にスペースを使用することが許可されているだけでなく、複数単語の識別子を使用するときに一般的に使用されるイディオムがあるプログラミング言語が存在したことはありますか? 一部のScheme実装では、スペース付きの識別子を使用することは可能ですが、広く見られる慣行ではありません。以下に例を示します。 Petite Chez Scheme Version 8.4 Copyright (c) 1985-2011 Cadence Research Systems > (define |hey there| 100) > (define |x y z| 200) > (list |hey there| |x y z|) (100 200)

7
関数型プログラミングが増えていますか?
私は最近、関数型プログラミング言語の人気が高まっていることに気付きました。Tiobe Indexの人気が昨年と比較してどのように増加しているのかを最近見ましたが、このインデックスによると、それらのほとんどは最も人気のある上位50言語にさえ達していません。 そして、これはかなり以前からそうでした。関数型プログラミングは、他のモデルほど普及していません(つまり、オブジェクト指向プログラミング)。 関数型プログラミングの力に生まれ変わりましたが、マルチコアの人気が高まっているため、開発者はHaskellやErlangなどの言語で既に検討されている他の並行性モデルに関心を示し始めています。 コミュニティの大きな受け入れがないにもかかわらず、この種の言語がますます出現しているという事実に大きな関心を持っています。Clojure(2007)、Scala(2003)、F#(2002)は、最近の10年間のほんの3つの例です。 私自身、HaskellとScalaを学ぶのに時間を費やしてきました。そして、私は長い間そこにいたにもかかわらず、私にとっては新しいパラダイムに大きな可能性を見出しました。 そしてもちろん、私の最大の質問は、これらのいずれかが努力を検討するのに十分人気があるかどうかですが、これはすべての大騒ぎの人々がそれらについて作っているにもかかわらず、Mandrakeでさえ答えることができない質問です。 私が聞きたいのは: 特定のタスクを実行するのにより適した関数型プログラミング言語を検討すべきシナリオはどれですか?並列プログラミングの最近人気のマルチコア問題に加えて。 関数型プログラミング言語に切り替えることにした場合、私が直面する最大の落とし穴になると思いますか?(パラダイムの変更と、遅延評価によるパフォーマンスの評価の難しさに加えて)。 非常に多くの関数型プログラミング言語がありますが、ニーズに合った言語をどのように選択しますか? さらなる研究のための推奨事項は大歓迎です。 私は意見を求めてウェブを検索しましたが、この新たな人気はすべて、ムーアの法則の壁にぶち当たろうとしているという考えから来ているようです。しかし、そうだとすれば、既存の一般的な言語がパラダイムに適応する可能性はもっと高いと思います。 おそらくこれらの言語を毎日使用する経験が豊富な人の中には、このテーマに関するより多くの洞察を提供できる人もいます。あなたの意見はすべて高く評価され、慎重に検討されます。 前もって感謝します!

13
変数を宣言するときにデータ型を指定する必要があるのはなぜですか?
ほとんどのコーディング言語(すべてではないにしても)では、変数を宣言する必要があります。たとえば、C#では、その数値フィールドが int PhoneNumber 私は、通常の英語を使用している場合は、私は宣言する必要はありませんPhoneNumberようintにそれを使用します。たとえば、友人のサムに電話番号を教えてもらったら、 「サムが電話番号を教えて」 言わない 「Char(20)サムがint phoneNumberをくれた」 データ型を指定する必要があるのはなぜですか?

18
プログラミング言語では構文は本当に重要ですか?[閉まっている]
私の教授の一人は、「構文はプログラミング言語のUIです」と言います。Rubyのような言語は読みやすく、成長していますが、C \ C ++で生産性の高いプログラマーが多いので、プログラマーは本当に構文が重要です受け入れられるべきですか? 私はあなたの意見を知りたいです。 免責事項:私は議論を始めようとはしていません。これは議論の良いトピックだと思いました。 更新:これは良いトピックであることが判明しました。みなさんが参加してくれてうれしいです。



5
ラムダ式は、単一のメソッドを持つ匿名の内部クラス以上のものですか?
Java 8には、待望のラムダ式に関する新しい誇大宣伝があります。3日ごとに、彼らがいかにクールであるかについての別の記事が表示されます。 私が理解している限り、ラムダ式は(少なくともバイトコードレベルで)単一メソッドを持つ匿名内部クラスにすぎません。これに加えて、別の優れた機能があります-型推論ですが、これと同等の機能は、あるレベルのジェネリックで実現できると信じています(もちろん、ラムダ式のようなきちんとした方法ではありません)。 これを知っていると、ラムダ式は単なるJavaの構文糖衣以上のものをもたらすでしょうか?現在の言語機能では構築できないラムダ式を使用して、より強力で柔軟なクラスやその他のオブジェクト指向の構造を作成できますか?

16
直感的な同時プログラミング抽象化を備えた最新のプログラミング言語[非公開]
私は、システムプログラミングではなく、アプリケーション/ユーザーレベルに重点を置いて、並行プログラミングを学ぶことに興味があります。並行アプリケーションを記述するための直感的な抽象化を提供する最新の高レベルプログラミング言語を探しています。生産性を高め、並行プログラミングの複雑さを隠す言語に焦点を当てたいと思います。 私の生産性が低下し、プログラミングモデルが直感的ではないため、いくつかの例を挙げると、C、C ++、またはJavaでマルチスレッドコードを記述する良いオプションは考えられません。一方、生産性を高め、Pythonやマルチプロセッシングモジュール、Erlang、Clojure、Scalaなどのより直感的な抽象化を提供する言語は、適切なオプションです。 あなたの経験とその理由に基づいて何をお勧めしますか? 編集:あなたの興味深い答えをみんなに感謝します。Erlang、Clojure、Scala、Groovy、そしておそらくHaskellなど、多くの優れた候補者がいるため、実際に試さずに結論を出すことは困難です。私は最も説得力のある議論で答えを投票しましたが、どれを選ぶか決める前にすべての良い候補者を試します:)

7
すべての言語は基本的に同じですか?
最近、私は知らなかった言語で書かれた小さなプログラムの設計を理解しなければなりませんでした(知っていなければABAP)。難しすぎずに理解できました。 新しい言語を習得することは全く異なる球技であることを認識していますが、いくつかの言語を知っている場合は、任意の言語のコード(特に複雑ではない生産標準コード)の意図を純粋に理解することは簡単です(できれば1つの手続き型/ OOと1つの機能)。 これは一般的に本当ですか?すべてのプログラミング言語は、ループ、条件ステートメント、関数間のメッセージ受け渡しなどの類似の構成要素で構成されていますか?典型的なJava / Ruby / Haskellプログラマーが理解できない非難解な言語はありますか?すべての言語には共通の起源がありますか?

5
プログラミング言語とマークアップ言語とスクリプト言語
これまで、私はこれら3つの主要な違いを知りません。誰かにこれについて尋ねられたとき、私はC#がプログラミング言語であり、HTMLとXMLがマークアップ言語であり、JavaScriptとVBScriptがスクリプト言語であると言うだけです。しかし、それらを互いに区別する主な違いは何ですか?

8
スコープベースのメモリ管理の欠点
スコープベースのメモリ管理(SBMM)、またはRAIIは、C ++コミュニティでより一般的に(混乱して?)参照されるため、私は本当に気に入っています。私が知る限り、C ++(およびC)を除いて、SBMM / RAIIをメインメモリ管理メカニズムとする他の主流の言語は現在使用されておらず、代わりにガベージコレクション(GC)を使用しています。 これはかなりわかりにくい SBMMはプログラムをより決定的にします(オブジェクトがいつ破壊されるかを正確に知ることができます)。 GCを使用する言語では、多くの場合、手動でリソース管理を行う必要があります(たとえば、Javaでファイルを閉じるを参照)。これは、GCの目的を部分的に無効にし、エラーも発生しやすくなります。 ヒープメモリは(非常にエレガントに、imo)スコープにバインドすることもできます(std::shared_ptrC ++を参照)。 SBMMがより広く使用されないのはなぜですか?その短所は何ですか?

3
「main」がintまたはvoidではなくdoubleまたはStringを返すことができないのはなぜですか?
例えばC、C ++、およびJavaなどの多くの言語では、main方法/機能は、の戻り型有しvoidまたはintではなく、doubleまたはString。その背後にある理由は何ですか? main実行時ライブラリによって呼び出されint main()、int main(int,char**)そのようないくつかの構文を想定しているため、それを実行できないことを少し知っています。 だから私の質問は次のとおりです。なぜそれがmain持っているタイプ署名を持っており、別のものではないのですか?

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