日経クロステックが実施した「プログラミング言語利用実態調査2023」で「今後、スキルアップしたいと思う言語はどれですか」と複数回答可で尋ねたところ、トップ10の言語が分かった。それぞれの言語の特徴を解説する。 1位 Python ライブラリが豊富。幅広い分野で使われている 1991年に登場したPythonは、現在最も人気のあるプログラミング言語の一つです。個人で使うちょっとしたプログラムから、WebシステムやAIのためのプログラムまで、様々な分野で利用されています。
![人気抜群のPython・JavaScript・Java、特徴を知って好きな言語を学ぼう](https://cdn-ak-scissors.b.st-hatena.com/image/square/4ea5d43f021e24fd65292cfa8c773abedf01af77/height=288;version=1;width=512/https%3A%2F%2Fxtech.nikkei.com%2Fatcl%2Fnxt%2Fcolumn%2F18%2F02872%2F062500001%2Ftopm.jpg%3F20220512)
自己紹介データサイエンティストの佐藤です。エムシーデジタルでは、最適化アルゴリズムの設計・実装や、機械学習モデルの構築、バックエンド開発などの業務に主に携わってきました。最適化をはじめとするアルゴリズムの実装・適用に興味があり、プログラミングコンテストサイト AtCoder では Algorithm 部門と Heuristic 部門の両方でレーティング 3000 に到達しています。 概要本稿は、最適化問題の一種である線形計画問題や混合整数計画問題を紹介し、一般に入手可能なソルバーを利用してこれらの問題を解く Python プログラムの実装・実行方法を説明します。 導入現実世界における課題は、しばしば「最適化問題」として定式化されます。例えば、物流のルート決定、製造計画の策定、資源の配分など、さまざまな分野で最適化問題が登場します。これらの問題は、変数に関する制約条件と目的関数を持ちます。制
Rustで作るプログラミング言語という書籍が先日発売されました。簡単なプログラミング言語を作ってバイトコードに変換して実行したりネイティブコードに変換して実行してみよう、という本で、大変面白く読みました。最終的にまあまあ本格的な言語になるので、これを元にするとわりとちゃんとした言語を作れそうです。 この書籍で最終的に作られる言語はこちら: GitHub - msakuta/ruscal: Programming language implementation learning project ちょうど私も、以前から構想していた言語があったので、ちょっと作ってみました。というのも、TypeScriptを設定記述言語としてさまざまなプログラミング言語から使えると便利ではないかとずっと思っていたのです。 この設定言語で複雑なことができる必要はなく、最終的にはJSONに準ずるデータ構造になればよい
僕がプログラミングに触れた当時は、プログラミングといえば「まず C 言語」でした。それから 10 年以上が経ちました。学校の授業や企業の研修では未だに C 言語を教えているところがあるようです。関数型プログラミング言語という波が来ている 2012 年にもなって未だに C 言語をやっているというのはまるで進歩が無く残念な気もしますが、比較的多くのプログラマに浸透している共通言語を最初に教えるというのは、一方では喜ばしい事だと解釈する事もできるのかもしれません*1。まぁとにかく、本意にせよ不本意にせよ現場で プログラム初心者に C 言語を教える羽目になった 人がたくさんいて、プログラム初心者なのに C 言語を学ばざるを得なくなった 若者がたくさんいるということです。 C 言語を教えるときに避けて通れないのがポインタで、プログラム初心者が C 言語を学ぶときにやたらとつまずく人が多いのがポインタ
あなたは今、ITエンジニアとして入社して3ヶ月が経過し、これから本格的にプログラミングを学ぼうとしている段階ではないでしょうか。 実はプログラミングを習得するためには、プログラミング自体の知識だけでは十分ではありません。抽象化のスキル、プロジェクトマネジメントのスキル、コミュニケーションスキルなど、多様なスキルが必要です。 私たちはこれまで約24年間にわたり開発を携わってきました。約500名のエンジニアと共にしてきました。そのなかでも新卒研修を共にしてきたエンジニアは100名にのぼります。 私たちよりももっと大きな経験豊富で素晴らしい研修を提供されている会社はあるかもしれません。でも、私たちは私たちなりに新卒エンジニアにとって素晴らしい研修を追求し続けてきた自負があります。 そこで今回は、そんな私たちの経験を踏まえて、入社3ヶ月の新卒エンジニアを対象に、プログラミングを学ぶためのおすすめの
Chrome の JavaScript はとても高速なことでも有名ですが、その実行エンジンは V8 と呼ばれます。V8 自体は独立したモジュールであり、Node.js 等にも使われております。 V8 が JavaScript を高速に実行する技術の一つが JIT (Just In Time) コンパイルです(一般的に JIT と呼ばれます)。これは、そのまま実行すると遅い JavaScript を実行中にリアルタイムに直接マシンコードに変換し(これが Just In Time と呼ばれる所以です)、途中からそのコードに入れ替えて実行することで高速化を達成しています。特に何度も実行される関数で効力を発揮します。 JIT という名前は聞いたことがあろうとも、実際に JIT がどのようなコードを実行しているのかを確認する機会は滅多にないでしょう。この記事では、実際に V8 の JIT の出力を確
この本の概要 小さなプログラミング言語から本格的なプログラミング言語へ……ステップバイステップでの開発を通して,プログラミングそのものへの理解を深めよう! こんな方におすすめ コンピュータサイエンス,とくにプログラミング言語そのものやコンパイラについての素養を得たいと考えている人 他言語でのプログラミング経験があり,Rustの習得に興味のある人。とくに,学習のための題材を探している人 第1章:プログラミング言語概論 プログラミング言語の分類 他の切り口での分類方法 コンパイルパイプライン 第2章:スタックベース仮想マシン 仮想マシン概論 Rustでの実装 標準入力からの読み込み パースとコマンドの実行 ブロックとネスト構造 if制御構文 変数の定義 複数行のソースコードへの対応 関数呼び出し 関数の再帰呼び出し WebAssemblyへのコンパイルとブラウザでの実行 第3章:プログラミング
はじめに C言語から派生したオブジェクト指向プログラミング言語であるC++は、21世紀に入ってまったく別物とも言えるプログラミング言語に成長していきました。それは、Modern C++と称されています。1990年代にC++を触っていたプログラマが現在の仕様を知れば、隔世感に苛まれるのではないでしょうか。本連載では、かつてはC++をたしなんでいたという方、今からC++言語を始めるという方に向けて、Modern C++らしい言語仕様をピックアップし紹介していくことで、今のC++言語の姿を理解していただきます。 対象読者 かつてはC++をたしなんでいたという方 今からC++言語を始めるという方 モダンなプログラミング言語のパラダイムに興味のある方 必要な環境 本記事のサンプルコードは、以下の環境で動作を確認しています。 macOS Sonoma/Windows 11 Xcode Command
目次 目次 「戻り値型の後置記法」って何? 何が嬉しいの? 問題点 「戻り値型の後置記法」って何? C++11から導入された言語仕様です。 タイトルの呼び方は自分が勝手に使っているだけで、英語圏だと「trailing-return-type」がよく使われるらしい。 cpprefjp.github.io この仕様を使うと例えば以下のようなコードが int Add(int a, int b) { return a + b; } このようになります。 auto Add(int a, int b) -> int { return a + b; } 何が嬉しいの? この仕様はC++のメタプログラミングで戻り値型の推論を簡単に行う目的で使用されます。 なんだ、そんなC++上級者のための機能なんて下々の人間には関係ないじゃん、とお思いかもしれませんが、この機能にはもう一つわかりやすい大きなメリットがある
Tagged Type というテクニックがある(TypeScript界隈などではBranded Typeと呼ばれているようだ)。実行時の型としては同じだが、型システム上はこれを区別して別物として扱い、混同できなくする仕組みを作るためのものだ。 AIくん!サムネイラスト作って!と頼んで作ってもらった画像 Tagged Type 単位の取り違えによる事故は後を絶たない。世の中には、キログラムとポンドを混同して飛行機があわや墜落しかけたり、メートルとヤードを混同して人工衛星がどっかに行ったりしている。尊い人命や国民の血税と比べるといささか霞むかもしれないが、ユーザIDとペイロードを間違えて送信したり、金額と口座番号を取り違えて送金したり、秘密鍵と公開鍵を間違えて表示したりしてしまえば、プログラマが大変な苦労をするか、会社そのものが傾くだろう。 しかしながら、データとしてはどちらも同じDouble
0から作るOS開発について ここではOS(のようなもの)を自分で作るための 簡単で基礎的な技術を載せています。 このホームページはC言語の基礎的な知識がある方を対象としています アセンブラなども取り扱います 何故? プログラムってどうやって動いているんだろう? OSってなんだろう? どうやって動いているんだろう? プログラム作ったことあるけどmain関数が動く前ってどうなってるんだろう? と思ったことありませんか? こんなふうに考えてもんもんとして過ごしていませんか? そんな方のためのこのホームページです! その当時 ふと疑問に思って オペレーティングシステムに関する技術本を読んでみましたが、 メモリ管理とかプロセスがどうたらこうたらと小難しいことばかりで 具体的にどう動くのか(もちろん十分具体的に書かれており 頭がついていってないだけなのですが。。。。)、 もっと言えばどうやって作るのか
OSを作るために コンパイラとアセンブラ(ここではC言語のコンパイラ)が必要かと思います UnixやLinuxを使っている方は 大抵最初からあるかと思いますし、 無いとしてもそのような方は自前で準備できるので 説明は省きます 自分も含め多くの方はWindowsを使用されて いるかと思いますので、その準備をしたいと思います ここではCygwin(コンパイラを含むツール)とnasm(アセンブラ)をインストールします コンパイラとアセンブラを手に入れる まずコンパイラを手に入れてみましょう。 コンパイラを手に入れるために Cygwin をインストールしてみます (気に入らない方はVisual C++とかでも一応できまるようになりますが、 ちょっとした智識が要ります。挑戦してみるのも良いかもしれません) CygwinはUnixのシェルみたいな感じで使える&Unixのツールが 使えるのでプログラムす
はじめに こんにちは、FarStep です。 プログラミングを学ぶ中で、「プロセス」と「スレッド」という言葉を耳にしたことがある方は多いと思います。 しかし、これらの違いを明確に説明できる自信がない方も多いのではないでしょうか。 本記事では、プロセスとスレッドの違いについて、エッセンスを抽出して 解説します。 説明を簡潔にしましたので、本記事は 5 分程度で読み終えることができます。 本記事の内容を自分の言葉で説明できるようになれば、プロセスとスレッドの違いの理解は十分でしょう。 それでは、始めます 🚀 プログラムとは プロセスとスレッドの違いを理解する前に、まずは「プログラム」について理解しましょう。 プログラムとは、プログラミング言語で書かれた一連の命令 のことです。 プログラミング言語の例としては、以下のようなものがあります。 C 言語 Java Python Ruby JavaS
アセンブリ言語の概要について以下の記事で解説しましたが、アセンブリ言語の使い方の詳細は解説できていませんでした。 アセンブリ言語について解説皆さんはアセンブリ言語をご存知でしょうか。プログラマーであれば一度は聞いたことがあると思いますが、最近はあまり使用されておらずイメージが湧かない方も多いと思います。 本記事ではアセンブリ言語の基本的な内容ついて、分かりやすく解説します。 ア...furu-se-blog.com2024.04.01 今回は初心者向けにアセンブリ言語の使い方のイメージが分かるように、書き方を1つずつ説明しながら、“Hello, world!”を出力する簡単なコードを作成・実行していきたいと思います。 本記事では、x86またはx86-64アーキテクチャ向けのNASM(Netwide Assembler)向けのアセンブリ言語の書き方で、Linux環境で動作するコードの作成を行
ゲームプログラミング入門書、横浜の15歳が完成 「ないなら自分で書く」制作経験盛り込んだ380ページ カナロコ by 神奈川新聞 / 2024年4月22日 11時30分 ゲームプログラミングの初心者向け入門書を、10代の少年が完成させた。横浜市磯子区に住む杉山悠真さん(15)の「僕自身、ゲームが大好き。いろいろな人がゲームを作れるようにしたい」という情熱が、全約380ページにも及ぶ力作に結実した。販売に向けた準備や全国の中学校への寄贈に向け、5月末までクラウドファンディング(CF)で支援を募っている。 杉山さんがプログラミングを知ったのは、ゲームが大好きな小学3年生の頃だった。「ゲームを作る側もすごい楽しいんだな」。プログラミングの本を読みあさり、次々と新たな技術を習得。小学6年生までに手がけた作品は800近くにも上った。 「ゲームの作り方が知りたいのに、何で基礎の説明ばっかりなんだろう」
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く