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

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

9
プログラミングにおけるメモリ管理は無関係な関心事になっていますか?
背景 私は、昔から行ったことのない古い(しかし素晴らしい)サイトであるAlioth Language Shootout(http://benchmarksgame.alioth.debian.org/)を再訪しました。 私は数年前にC / C ++でプログラミングを開始しましたが、それ以来、関与しているプロジェクトの言語の制約のため、ほぼJavaのみで作業を続けてきました。リソース使用量の点でC / C ++に反しました。 実行時間は最悪で、JavaはC / C ++よりも4倍も遅いを実行すると、まだ比較的良好であったが、平均の周りの(または以下)2倍に。Java自体の実装の性質により、これは驚くことではなく、パフォーマンス時間は実際に私が予想したものよりも短かったです。 実際のレンガはメモリ割り当てでした-最悪の場合、Javaが割り当てられました: Cの52倍ものメモリ C ++の25倍以上。 メモリの52倍...絶対に厄介ですよね?... またはそれは?現在、メモリは比較的安価です。 質問: 作業メモリに厳しい制限があるターゲットプラットフォーム(つまり、組み込みシステムなど)に関して話さない場合、今日汎用言語を選択する際にメモリ使用量を考慮する必要がありますか? 第一言語としてScalaへの移行を検討しているからです。私はそれの機能面が非常に好きですが、私が見ることができることから、それはJavaよりもメモリの点でさらに高価です。ただし、メモリは年々速く、安く、豊富になっているようです(少なくとも4GBのDDR3 RAMを持たない消費者のラップトップを見つけることはますます困難になっているようです)。より読みやすいソリューションを迅速に構築できる(おそらく実装上高価な)高レベル言語機能と比較して無関係ですか?

12
C / C ++のコンパイル可能な最新の代替[クローズ]
新しいソフトウェア製品の作成を検討しています。パフォーマンスが重要になるため、インタープリターまたは言語、またはエミュレーションレイヤーを使用する言語(Javaを読む)の使用には注意が必要です。 これにより、C(またはC ++)を使用することを考えることになりますが、どちらもかなり長いです。私も長い間使用していません。過去20年間で、誰かがおそらくかなり人気があり、コードを作成してコンパイルするのに適したものを作成したと考えました。 高性能のコンパイル済みコードを作成するためのCには、他にどのような代替手段がありますか? C ++が15年前とは異なる獣である場合、私はそれを検討するでしょう、私はそれがいくつかの固有の問題を抱えていると仮定したと思います。 並列化は重要ですが、おそらく複数のマシン間ではそうではありません。

26
言語デザイナーに何に注意してもらいたいですか?[閉まっている]
この質問の目的は、それなしでは生きていけない、または選択したメイン言語で望んでいたプログラミング言語機能のランドリーリストを組み立てることではありません。この質問の目的は、ほとんどの言語設計者が考えていないかもしれない言語設計の隅を明らかにすることです。したがって、言語機能Xについて考える代わりに、もう少し哲学的に考えてください。 私の偏見の1つであり、おそらく議論の余地があるかもしれませんが、エンジニアリングのより柔らかい側面(理由と理由)が、より具体的な側面よりも何倍も重要であるということです。たとえば、Rubyは、開発者の幸福を改善するという目標を掲げて設計されました。それが実現したかどうかについてあなたの意見はまちまちかもしれませんが、目標であったという事実は、言語設計の選択のいくつかがその哲学によって影響を受けたことを意味します。 投稿しないでください: 構文フレーム戦争。それに直面しましょう、私たちには好みがあり、言語設計に関係する構文が重要です。私は、emacs vs. VI(最近では多くの人が何も知らない)の性質の壮大な戦いを避けたいだけです。 「機能Xを持たない言語は存在するに値しない」とコメントを入力します。すべてのプログラミング言語が存在する理由は、少なくとも1つあります。良いか悪いかです。 してください行うポスト: 言語デザイナーが見逃していると思われる哲学的アイデア。 実装頻度が低いと思われる技術的概念。それが引き起こす痛みの例を提供してください、そしてあなたがそれが機能するのを好む方法のアイデアがあれば。 希望するものはプラットフォームの共通ライブラリにありましたが、めったにありません。同じトークンがありますが、通常は共通ライブラリにあるものはそうではありません。 すべてのプログラミング言語が適切に実装され、適切に定義されることを望む、組み込みのテスト/アサーション/契約/エラー処理サポートなどの概念的な機能。 私の希望は、これが楽しく刺激的なトピックになることです。 編集: Syntax Flame Warsの意味を明確にしました。特に構文はプログラム言語設計の基本的な部分であるため、構文のすべての議論を避けようとはしていません。

6
言語のテストが構文レベルでサポートされている機能ではないのはなぜですか?
ソースコードの単体テストの利点を宣伝するブログ、記事、ウェブサイトの無限のリストを見つけることができます。Java、C ++、C#、およびその他の型付き言語用のコンパイラをプログラムした開発者は、ユニットテストを使用して作業を検証したことがほぼ保証されています。 それでは、なぜその人気にもかかわらず、これらの言語の構文にテストがないのでしょうか? マイクロソフトはC#にLINQを導入しましたが、なぜテストも追加できないのですか? 私は、これらの言語の変更がどうなるかを予測するつもりはありませんが、そもそもなぜそれらが変更されないのかを明確にするつもりです。 例として:ステートメントのfor構文なしでループを書くことができることを知っていますfor。whileまたはif/ gotoステートメントを使用できます。誰かがfor声明がより効率的であると判断し、それを言語に導入しました。 テストがプログラミング言語の同じ進化に従っていないのはなぜですか?

6
型推論が役立つのはなぜですか?
私はコードを書くよりも頻繁にコードを読みますが、産業用ソフトウェアに取り組んでいるプログラマーのほとんどがこれを行うと仮定しています。型推論の利点は、冗長性が少なく、コードが少ないことです。しかし一方で、コードをより頻繁に読む場合は、おそらく読み取り可能なコードが必要になります。 コンパイラーは型を推測します。これには古いアルゴリズムがあります。しかし、本当の質問は、プログラマーがコードを読むときに変数のタイプを推測したいのはなぜですか?誰がタイプを読むだけで、どのタイプがあるかを考えるよりも速くないですか? 編集:結論として、なぜそれが役立つのかを理解しています。しかし、言語機能のカテゴリでは、演算子がオーバーロードしているバケツの中にあります-場合によっては便利ですが、乱用された場合は読みやすさに影響します。

3
REPLとインタラクティブシェルの違い
Noobの質問。Wikipediaの定義を読むだけでは、REPLとインタラクティブシェルの違いを知ることができません。 Wikiは、REPLは特定の種類の対話型言語シェルであると指摘しています。それは適切なサブセットですか?Wikiの定義は、用語REPLをLispのような言語に制限しているように見えますが、記載されているプロパティには実際に顕著な特徴は含まれていません。 特に、IPythonをREPLと呼ぶのは正しいでしょうか?

8
チューリング完全ではない「有用な」プログラミング言語を持つことは実際に可能ですか?
言語がチューリング完全でなくてはならないことが受け入れられている場合、チューリング完全ではない「有用な」プログラミング言語を持つことは実際に可能ですか? これは、マークアップ言語やクエリ言語ではなく、伝統的な意味での「プログラミング」言語に関するものであることを明確にする必要があります。

22
独自のプログラミング言語を使用して仕事をすることには欠点がありますか?[閉まっている]
私は大学を卒業したばかりで、CSの学位を取得しています。そのため、この分野についてもっと学び、専門的な経験を積むことができる仕事を見つけたいです。 社内で独自のプログラミング言語を使用している会社にインタビューしたことがありますが、他の人がそれを使用しているとは思いません。他の言語の使用や、開発環境で使用するものについては言及していません。 このような仕事に就くとき、私は何を心配すべきですか?後で仕事を切り替える場合、言語固有の経験を積んでいないので、エントリーレベルの職を再び探し始める必要がありますか?

17
プログラミングスキルに自信を持たせるにはどうすればよいですか?[閉まっている]
プログラミングは私にとって異質ではありません。私は最初にマークアップ(HTML、今は笑わないでください)を12歳のときに始め、13歳のときに少しBASICを使いました(この時点でフローチャート、擬似コードについて多くを知っていました)が、その後、高校での生物学。したがって、C、Javaなどの言語の「実際の」プログラミング知識を逃していました。UG BEのCSを取り上げました(BSに似ていますが、より理論的な方法です)。私は自分でCとC ++を(程度は低いが)学びました(私の教授は完全な痛みであり、クラスはコードジョックでいっぱいでした(学校で既に学んでいたため、クラスに注意を払わず、私のようなより低い定命の者にクラスに注意を払わせてください))、素晴らしい加算または乗算プログラム(今では幼稚園児でさえも) 私の主な問題は、限られたプログラミングスキルに常に不十分で首を絞められ、コードジョックに軽視されていることです(信じられませんが、私はこのサイトに何年も前に出会ったことがありますが、実際に投稿する勇気を築くことができただけです)質問)そして、時にはその無能さをめぐってさえ落ち込んでいます。ほとんどの人は、プログラミングは必ずしも言語ではなく、その人の心の状態と問題/問題を解決するために使用する技術に関するものだと言います。私はそのような感情に同意しますが、そのような「心の状態」を獲得することはできますか?そのような場合、「プログラミング/コーディング」にどのようにアプローチする必要があり、「Zen」を達成するための最も設定された方法と手順がある場合コーディング」。どうすればいいですか?また、ある聖人がこの虐げられた$#!^の一部を指導したいと思っても害はありません。 PS私は自分の時間の価値があると考える人に永遠に感謝し、ボーナスとして彼らの後に出荷する私の最初のソフトウェアの名前を付けます。(私が1つを出荷するようになったら、つまり) TL; DR:「プログラミング/コーディング」を実際に学んだことはありません。私が試みても問題を解決できません。助けて!

11
「バブルパラドックス」とc ++
ここで記事を読んでいた:http : //www.paulgraham.com/avg.htmlそして「blub paradox」に関する部分は特に興味深いものでした。主にc ++でコーディングしているが、他の言語(主にHaskell)にさらされている人として、これらの言語ではc ++で複製するのが難しいいくつかの便利なことを知っています。質問は、主にc ++と他の言語の両方に習熟している人に対するものですが、c ++のみで記述している場合は概念化や実装が難しい言語で使用する強力な言語機能やイディオムはありますか? 特に、この引用は私の注意を引きました: 帰納法により、さまざまな言語間の力の違いをすべて見ることができるプログラマーは、最も強力な言語を理解しているプログラマーだけです。(これはおそらく、Eric RaymondがLispを使ってより良いプログラマーにしたことを意味するものです。)他の人の意見は、Blubパラドックスのために信頼できません。彼らがプログラムについて考える方法。 私がc ++を使用することで「Blub」プログラマと同等であることが判明した場合、次の質問が発生します。他の言語で遭遇し​​た概念化が難しいと思われる有用な概念やテクニックはありますかC ++で書いているか、「考えている」? たとえば、PrologやMercuryなどの言語に見られるロジックプログラミングパラダイムは、キャスターライブラリを使用してc ++で実装できますが、最終的には概念的にPrologコードの観点から考えており、これを使用する場合はc ++の同等物に翻訳しています。プログラミングの知識を広げる方法として、C ++開発者としては知らないかもしれない他の言語でより効率的に表現される有用な/強力なイディオムの他の同様の例があるかどうかを見つけようとしています。思い浮かぶもう1つの例は、Lispのマクロシステムです。プログラム内からプログラムコードを生成すると、いくつかの問題に対して多くの利点があるようです。これは、c ++内から実装して考えることは難しいようです。 この質問は、「c ++ vs lisp」の討論や、あらゆる種類の言語戦争型の討論を意図したものではありません。このような質問をすることが、私が知らないことを知らないことを知ることができる唯一の方法です。

11
あるプログラミング言語から別のプログラミング言語への自動翻訳者がいないのはなぜですか?[閉まっている]
ほとんどのプログラミング言語はチューリング完全です。つまり、ある言語で解決できるタスクは、別の言語で、またはチューリングマシン上でも解決できます。それでは、プログラムを特定の言語から他の言語に変換できる自動翻訳者がいないのはなぜですか?2つの言語に対するいくつかの試みを見てきましたが、それらは常に言語の限られたサブセットでのみ機能し、実際のプロジェクトの変換にはほとんど使用できません。 少なくとも理論的には、すべての言語間で100%正しい翻訳者を書くことは可能ですか?実際の課題は何ですか?働く既存の翻訳者はいますか?

8
例外はOOPの概念ですか?
昨日投稿を読んで、私は例外の起源についてあまり知らないことに気付きました。OOP関連の概念のみですか?私はそう思う傾向がありますが、やはりデータベースの例外があります。

2
4番目と5番目のプログラミング言語の世代とは何ですか?それらはもっとありますか?[閉まっている]
多くの場合、学校/大学レベルで分類されているため、一般的なプログラミング言語(C#、Java、C ++)はすべて第3世代の言語です(マシンの物理部分からの抽象度が高い)。また、アセンブリ言語は第2世代、機械言語は第1世代言語に分類されます。 最初は、SQLは第4世代言語と見なされるべきだと考えていました。これは、SQLがより抽象的であり、ループの詳細からはるかに離れており、より記述的だからです。 今、第4世代と第5世代の言語があることがわかりましたが、プログラミング言語またはテクノロジを第4世代または第5世代の言語として分類する根拠は何ですか? また、第6世代または第7世代の言語もありますか?

9
なぜ学校はリストよりも配列を教えるのですか?[閉まっている]
私の学校での最初のプログラミングクラスの割り当てのほとんどでは、配列を使用する必要がありました。私は今フルタイムで働いており、私が取り組んだプロジェクトでアレイを使用したことはありません。既存のプロジェクトでさえ、どこでも配列の使用を見たことはありません。私の意見では、リストは使いやすく標準です。教授が課題でアレイを使用するよう生徒に指示するのはなぜですか?学生が基本を理解するためだけですか? ほとんどの大学がJavaを教えているため、この質問はJavaに固有のものです。

7
なぜこれほど多くの言語が値渡しされるのですか?
Cのような明示的なポインター操作がある言語でさえ、常に値で渡されます(参照で渡すことができますが、これはデフォルトの動作ではありません)。 これの利点は何ですか、なぜ多くの言語が値で渡されるのか、なぜ他の言語は参照で渡されるのですか?(私は確信していませんが、Haskellが参照渡しであることを理解しています)。

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