Category Archives: research

排便制御の脳神経解明 便秘治療法に応用も、九州大

医療・健康|排便制御の脳神経解明 便秘治療法に応用も、九州大

2025/10/10 22:00(2025/10/10 22:01 更新) [有料会員限定記事]

九州大学(福岡市)などの研究グループは10日、排便をつかさどる脳中枢の仕組みについて、マウスを使った実験で解明したと発表しました。

研究により、脳幹内の神経核に存在する2種類の神経細胞がそれぞれ異なる役割で排便を制御していることが明らかになりました。

※この記事は有料会員限定記事です。残りの内容は7日間無料トライアル(1日37円の読み放題プラン、年払いプランはさらにお得)でご覧いただけます。

https://www.nishinippon.co.jp/item/1410058/

「受賞は当然、感無量」6年半共に研究の九州大・大場教授喜び 北川さんノーベル化学賞

「受賞は当然、感無量」6年半共に研究の九州大・大場教授喜び 北川さんノーベル化学賞

2025年10月9日 6:00 [有料会員限定記事]

ノーベル化学賞受賞が決まった北川進京都大特別教授との研究について、オンラインで取材に応じたのは、九州大学大学院理学研究院の大場正昭教授です。大場教授は2003年から約6年半にわたり北川教授と共に研究を進めてきました。

「受賞は当然のことと感じており、感無量です」と大場教授は喜びを語りました。二人の長年の努力が実を結んだ結果であり、福岡を拠点とする研究者として非常に誇らしい瞬間となりました。

本記事は有料会員限定となっておりますが、7日間の無料トライアル(1日37円で読み放題)や年払いプランにてさらにお得にお読みいただけます。

https://www.nishinippon.co.jp/item/1409143/

THE世界大學排名2026|本港5間全球百強大學排名齊攀升 教大嶺大首度入榜

最新出爐的《泰晤士高等教育》(THE)2026年世界大學排名顯示,本港大學整體表現優秀。共有5間大學進入全球百強,且排名全面上升,其中香港大學位列全球第33位,較去年提升2位,連續穩居本港之首。此外,香港教育大學及嶺南大學首次上榜,教大更躍升至全球第195位,使香港首次有6間大學進入全球前200名。

THE排名根據院校的教學質量、研究環境、研究影響力、國際展望及產業收入等五大面向,綜合18項指標進行評分。今年共有來自115個國家及地區的2191所大學上榜。英國牛津大學繼續蟬聯全球首位,美國麻省理工學院位列第二,美國普林斯頓大學與英國劍橋大學並列第三,美國哈佛大學與史丹福大學並列第五,其中哈佛大學較去年下跌2位。

香港方面,八間資助大學全數上榜,並首次有六間大學排名進入全球前200名。THE指出,香港是全球唯一一個擁有至少3間大學入榜,且所有上榜大學排名均呈上升趨勢的地區。香港大學的強勁教學聲譽、博士與本科生比例及師生比例三大指標顯示本地大學更加聚焦於科研發展,並加大對教職員及博士課程的投入。

在最新排名中,香港大學全球排名第33位,提升2位,穩居香港第一。其它四所進入全球百強的大學依序為:香港中文大學(第41位)、香港科技大學(第58位)、香港城市大學(第75位)及香港理工大學(第83位)。香港浸會大學則由前一年的251至300名區間升至201至250名區間。其中,中文大學、城市大學及浸會大學均創下歷年最佳排名。剛入榜的教育大學與嶺南大學分別名列第195位及301至350名區間。

針對排名結果,本報向香港八大院校查詢,多所校方均表示欣然接受。香港大學校長張翔致謝團隊努力,強調大學將繼續秉持卓越精神,以頂尖教研成果及創新知識交流,履行作為全球一流學府的使命,為香港及國家的高質量發展作出更大貢獻。

教育大學在「研究質量」指標表現出色,多個研究領域展現優勢。校長李子建對於本校首次上榜並取得佳績感到欣喜,認為這反映師生在推動具全球影響力的教育及科研工作的努力。李校長亦指出,教大將繼續追求卓越,配合國家建設教育強國的目標,推動香港成為國際專上教育樞紐,做出更大貢獻。

香港中文大學在5項績效指標(包括機構收入、研究生產力、研究收入、卓越研究及專利)均獲得滿分100分。中大校長盧煜明對此里程碑表示鼓舞,認為中大連續10年進入全球百強,彰顯學校於國際高等教育界的領導地位,未來將謹慎迎接各項挑戰。

香港科技大學強調一向將排名視為參考,幫助學校審視表現並找出進步空間,將持續推動創新教學、卓越科研與有影響力的知識轉移。

香港城市大學連續3年在「產業收入」指標獲滿分,並再度居全球首位;「國際展望」指標則連續8年在香港排名第一。城大校長梅彥昌表示,學校在4大國際排名均穩居全球百強,彰顯持續對創新及學術科研的堅持,將透過開創性研究和產學研合作積極應對全球挑戰。

【延伸閱讀】
學校推薦直接錄取計劃|10月9日起接受提名,DSE中六考生可參加。
https://www.stheadline.com/edu-news/3506685/THE世界大學排名2026本港5間全球百強大學排名齊攀升-教大嶺大首度入榜

The biggest semantic mess in Futhark

**Posted on September 26, 2025**

The original idea behind Futhark was that parallel programming (of certain problems) does not require a complicated language. Indeed, we believed that there was little need for the complexity to exceed that of the functional languages commonly taught to first-year students at universities. (The complexity of parallel algorithms is another matter.) Overall, I think Futhark has succeeded at that.

The meaning of a Futhark program is fairly easily determined using normal environment-based semantics; even tricky things like uniqueness types are mainly complicated in an operational sense, and to some extent in the type system, the meaning of a program (once it type checks) is obvious. This semantic simplicity is also evident in the implementation. While the compiler has lots of complicated optimizations and sophisticated transformations, the reference interpreter is largely straightforward and quite similar in structure to how a person studying programming languages would write their first tree-walking interpreter.

You will note that the above paragraph is full of words like *overall*, *largely*, and *fairly*. This is because there is one language feature that has proven a particularly fertile ground for edge cases and implementation bugs. That feature is **size types**.

In the following, I will explain why a seemingly simple type system feature has proven so surprisingly challenging.

### Size Parameters

To recap the basic idea, size types allow Futhark functions to impose constraints on the sizes of their parameters. A simple example is a definition of the dot product, which takes two arguments that must be vectors of the same size.

Here, *n* is a size parameter that is implicitly instantiated whenever the function `dotprod` is applied, based on the concrete arrays it is passed. This by itself is not so difficult. Sizes can easily be incorporated into a type checking algorithm by treating them as types of a different kind — the details do not matter, just take my word that it’s fine. (Writing blog posts is easier than writing academic papers.)

The main trouble arises when we introduce the ability to use sizes as term-level variables, like, for example, the definition of `length`.

When a size parameter is in scope, it can be used in expressions. Unsurprisingly, the value of a size parameter is the size of the corresponding dimension in some array. What is interesting is that we can access the size of `x` without actually mentioning `x` itself.

Intuitively, we can imagine that the concrete value of *n* is determined at run time by actually looking at `x` (say, by counting its elements), and for now this intuition holds.

But now let us consider what happens for a function that takes the number of columns of a matrix (the inner length):

“`futhark
cols (mat: [n][m]a) = m
“`

There are now two size parameters, *n* and *m*, and we retrieve the latter.

This case is a little more challenging when *n* is zero, as we cannot simply retrieve a row and look at it to determine *m* because there are no rows. Yet an expression such as

“`futhark
cols (replicate 0 (replicate 3 0))
“`

should still work (and evaluate to 3).

This means we need to extend our notion of how the values of size parameters are determined since it cannot be done by looking at the syntactic form of an array value and counting the elements (since `replicate 0 (replicate 3 0)` really is just written `[]`).

### Shape Annotation of Arrays

The solution is to extend our (conceptual and perhaps even concrete) array representation such that an array always carries a **shape** with it, in addition to its actual elements.

Then, intuitively, to determine the value of some size parameter, we still look for values (such as `x` above) that have that size somewhere and extract it from those values.

But now, perhaps unwittingly, we have picked a difficult fight.

The problem is that we sometimes have to create multidimensional arrays without having any example of an element! Yet we still somehow have to conjure up the right shape for the array.

As an example, consider the `map` function, of the following type:

“`futhark
val map [n] ‘a ‘b : (f: a -> b) -> (as: [n]a) -> [n]b
“`

The element type of the returned array is given by the return type of the function `(f)` we are mapping with. But if we are mapping over an empty array, then `f` may never be applied:

“`futhark
map (\(x: i32) -> [x, x, x]) []
“`

How, then, are we supposed to determine that the shape of this empty array is actually `[0][3]`?

When the array is constructed inside `map`, all that is known is that the outer size is *n* (which is known to be 0), and that the element type is some `b`, but we have no value of type `b` we can use to determine what the shape may be! We do have a function `a -> b`, but we also have no `a`; all we have is an array of type `[0]a`, which clearly does not have any elements inside of it.

### The Idea of Shapely Functions

One solution to this problem is due to Barry Jay and explained in the paper *A Semantics for Shape*.

The idea is that any **shapely function** can be evaluated normally (with a value, producing a value) or with a shape, producing a shape. A shapely function is therefore one where the shape of the result depends *only* on the shape of the input, which rules out functions such as filtering, where the result shape depends on the values as well.

This by itself is no problem to Futhark, as we only want to allow mapping with functions that have a predictable result to avoid irregular arrays.

Using this approach requires us to have two ways of applying a function: for **value** and for **shape**. This is a slight semantic complication, but perhaps we can live with it.

But we also have to get the input shape from somewhere, and in the case of `map`, all we know is that the input has type `a`.

### Using Instantiated Type Parameters

Things could be made to work if, whenever a function is invoked, we also receive the concrete shapes of values of type `a` (assuming this is possible, but because `a` is used for array elements, we know it must have a meaningful shape).

But if we do that, then why not just take the shape from `b` instead and avoid this entire business of shapely functions?

And indeed, this is the Futhark evaluation model. At any time, a polymorphic function can inquire about the concrete type that a type parameter has been instantiated with and extract a shape if necessary.

This can then be used to annotate any constructed arrays with their full shape.

Note that this is a model: the interpreter does it this way because the interpreter is intended to closely mirror the model, but the actual compiler does not, of course, do it literally this way, as type parameters do not exist at run time. It just has to do it in a way that produces the same result. (In practice, it does monomorphisation.)

### Troubles

We didn’t do it this way because it was easy. We did it because we thought it would be easy.

Sadly, it has turned out to not be easy.

The basic problem is that we now have an obligation to always know the full shape of any type at all times (except for those types that can never be used as array elements, but let us leave those aside for now).

This turns out to require machinery more intricate than standard environment-based evaluation.

The fundamental problem is pretty obvious: we need to also evaluate **types** along with expressions, just in case they are eventually used to construct an array, and types occur in various unexpected places.

For example, consider a module that defines some local binding `cnt` and a size-parameterised type that refers also to `cnt`:

“`futhark
module M = {
let cnt = 5
type C [n] = [n][n * cnt]i32
}
“`

The usual way definitions of polymorphic types such as `type C [n] = …` works is that they are added as type constructors to a type environment and then instantiated when used.

Now, `M.C [n]` by itself does not have a shape, since *n* is not yet known. At some point in the future, we may end up with an instantiation `M.C [k]` for some concrete *k*, and when that happens we can then compute the shape of the type, which will be `[k][k * M.cnt]`.

But there is no guarantee that `M.cnt` is actually in scope — it may be some hidden definition inside the module `M`, and even if it isn’t, it’s difficult to go from an expression `n * cnt` and give it a meaning in a different scope than it was originally defined in.

Since Futhark is a pure language, we could, as soon as we interpret the type definition of `C`, substitute the result of evaluating `cnt` into its right-hand side.

But this is also uncomfortable: it’s a syntactic operation, and while substitution-based semantics are fairly common in theoretical work, they are undesirable in implementations because they are quite inefficient. While the expression `n * cnt` is small, others may be large.

### Type Constructors as Closures

Our solution is that a type definition captures not just the right-hand side of the definition, but also its environment — that is, type constructors are **closures**.

When at some point in the future we finally instantiate `M.C` and have a `k` value for `n`, we extend the captured environment with a binding `n => k` and evaluate all the expressions in sizes.

This is a very strange implementation that took us quite a while to work out. If I had more experience implementing dependently typed languages, then perhaps I would not find it so weird, as it really just makes type constructors similar to functions, which they would be in a fully dependently typed language.

### Takeaway

Size types have proven to be a rich source of complexity in the design and implementation of Futhark, despite their initial simplicity.

Handling shapes, sizes, and type-level computations requires intricate machinery and careful design decisions.

However, these challenges are also what make Futhark powerful and expressive for parallel programming with precise size constraints.

Understanding these subtleties brings us closer to developing robust, efficient, and predictable parallel programs.

Thank you for reading!
https://futhark-lang.org/blog/2025-09-26-the-biggest-semantic-mess.html

Indoor wood burners may be harming your lungs, study warns

Wood-burning stoves have become increasingly popular across Europe in recent years, often promoted as an eco-friendly and renewable alternative to fossil fuels. However, new research suggests that using these stoves inside the home may come at a cost: a decline in lung function.

The study was presented at the European Respiratory Society Congress in Amsterdam by Dr. Laura Horsfall, Principal Research Fellow at University College London’s Institute of Health Informatics. Her team’s findings add to a growing body of evidence that indoor wood burning may be more harmful than many people realize.

In the UK, domestic wood burning now contributes about 20% of harmful fine particle air pollution, known as PM2.5. These particles are tiny—less than 2.5 micrometers across—and can penetrate deep into the lungs. For comparison, road vehicle exhaust now makes up only about 4% of the UK’s PM2.5 emissions.

The shift has been dramatic: annual emissions from wood burning almost doubled between 2009 and 2023, rising from 3,200 to 6,000 metric tons.

“Wood burning at home emits harmful air pollution both indoors and outdoors, including substances we know can cause cancer,” said Dr. Horsfall. Despite this, the number of wood stoves in use has grown rapidly since 2009.

However, we still don’t fully understand the health impacts in high-income countries, where wood stoves tend to be used for lifestyle or aesthetic reasons rather than necessity.

To explore these effects, Horsfall and her colleagues used data from the English Longitudinal Study of Aging, which tracks the health of older adults in England. They focused on a lung function measure called FEV1—the amount of air a person can exhale forcefully in one second. A lower FEV1 is linked to higher risk of conditions such as asthma, COPD, and other respiratory complications.

Studying the health impacts of wood stoves is tricky. People who use solid fuel heating in the UK are often wealthier and healthier than the average population. They smoke less and have lower rates of pre-existing lung disease. This means the negative impact of wood burning could easily be overlooked.

Even after accounting for these factors, the researchers found that people who reported using wood or other solid fuels experienced a faster decline in lung function over an eight-year period compared to non-users.

“Our study suggests that high levels of particulate matter from stoves damage respiratory tissues and trigger inflammation in much the same way as cigarette smoke,” Dr. Horsfall explained.

The team now plans to study whether people living in neighborhoods with a high concentration of stoves—such as affluent areas of London—also experience more prescriptions for inhalers or higher hospital admissions for lung disease.

Professor Ane Johannessen, an environmental health expert at the University of Bergen who was not involved in the study, said the results are significant.

“We already know from studies in low- and middle-income countries that wood smoke exposure inside homes is harmful, causing asthma, COPD, and lung cancer. This research suggests that the same risks could apply in European homes, where stoves are used for lifestyle reasons.”

Although modern eco-design stoves are marketed as cleaner than older models, the study authors stress that even newer stoves may not be risk-free.

Johannessen urged both the public and doctors to take the risks seriously. “Doctors should be asking patients about stove use when investigating unexplained lung problems. And families should be aware that these stoves could be harming their health.”

The findings highlight a pressing need for clearer public health guidance and regulation. While wood stoves may be cozy and marketed as eco-friendly, they may also be silently damaging the lungs of those who use them most.
https://knowridge.com/2025/10/indoor-wood-burners-may-be-harming-your-lungs-study-warns/